การติดตั้ง React Router ในแอปพลิเคชัน Redux

ในบทเรียนที่ผ่านมาเราได้ติดตั้งเครื่องมือหลัก สำหรับทำงานกับ Redux ไปแล้ว บ่อยครั้ง ที่แอปพลิเคชันจำเป็นต้องมี เราเตอร์สำหรับนำทางระหว่าง หน้าเว็บต่าง ๆ และแอปพลิเคชันของเรา ก็ไม่ใช่ข้อยกเว้น สำหรับการนี้ เราจะติดตั้งไลบรารี React Router

เปิดโปรเจคของเราแล้วพิมพ์ในเทอร์มินัล คำสั่งต่อไปนี้:

terminalnpm install react-router-dom

ขอพูดล่วงหน้าเล็กน้อยว่าแอปพลิเคชัน Redux ของเรา โดยทั่วไปแล้วมักจะเกี่ยวกับ สินค้า ซึ่งข้อมูลของสินค้าถูกโพสต์โดย ผู้ขายบางคน ดังนั้นตอนนี้เราจะปรับเปลี่ยน คอมโพเนนต์หลัก App พอสมควร และเพิ่มฟังก์ชันการทำงานสำหรับ การกำหนดเส้นทาง (routing) ลงในแอปพลิเคชัน

เริ่มต้นให้เข้าไปที่โฟลเดอร์ src แล้วตามด้วย app และสร้างไฟล์ root.jsx ที่นี่ นี่จะเป็นรากของเว็บไซต์ของเรา: ด้านซ้ายเราจะมีเมนู ส่วนด้านขวา - เป็นเนื้อหา (ตอนนี้เรามีแค่ หัวข้อ):

app/root.jsxfunction Root() {
  return (
    <div id="main">
      <div id="menu">
        <nav>
          <a>Products</a>
          <a>Sellers</a>
        </nav>
      </div>
      <div id="main_page">
        <h2>นี่คือแอป Redux แรกของฉัน!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

และเราจะปรับเปลี่ยนคอมโพเนนต์ App อันดับแรก ลบเนื้อหาทั้งหมดออก จากนั้น นำเข้า (import) ฟังก์ชันสองฟังก์ชันสำหรับเราเตอร์และ คอมโพเนนต์ราก Root ของเรา:

App.jsximport { createBrowserRouter, RouterProvider } from 'react-router-dom'
import Root from './app/root'

ด้านล่างหลังการนำเข้า ให้สร้างเราเตอร์ และกำหนดเส้นทางแรก โดยส่ง Root ของเราไปเป็นองค์ประกอบที่จะแสดงผล และกำหนดเส้นทางเป็น '/' ต่อไปใน App เราจะเพิ่ม เส้นทางอื่น ๆ ที่จำเป็น:

App.jsxconst router = createBrowserRouter([{ path: '/', element: <Root /> }])

ด้านล่างให้เขียนโค้ดของฟังก์ชัน App:

App.jsxfunction App() {
  return <RouterProvider router={router} />
}

export default App

เรียบร้อย เริ่มต้นแอปพลิเคชัน ในส่วนถัดไปเราจะ ดำเนินการสร้างคอมโพเนนต์สำหรับทำงานกับแอปพลิเคชัน Redux

สุดท้ายนี้ เรามาเพิ่มความสวยงามเล็กน้อย โดยเขียน สไตล์ไว้ที่ index.css:

index.cssbody {
  font-size: 24px;
  line-height: 1.5;
}

nav {
  display: flex;
  flex-direction: column;
}

ul {
  list-style: none;
  padding: 0;
}

h1, h2, h3 {
  margin: 0;
}

a {
  text-decoration: none;
  color: blue;
  cursor: pointer;
}

#main {
  display: flex;
  margin: 20px;
}

#menu {
  margin-right: 50px;
  padding-top: 50px;
  padding-right: 50px;
  border-right: 2px solid lightgray;
  font-weight: bold;
}
Задание 1

เพิ่ม React Router ลงในแอปพลิเคชันของคุณ

Задание 2

ให้แอปพลิเคชันของคุณเกี่ยวข้องกับ นักเรียน ซึ่งข้อมูลเกี่ยวกับนักเรียนจะถูก โพสต์โดยอาจารย์ ด้วยเหตุนี้ ให้สร้างคอมโพเนนต์ราก Root และปรับเปลี่ยนคอมโพเนนต์ App ตาม ที่อธิบายในบทเรียน