เริ่มต้นกับ Router
ลองมาทำ Router กันเองก่อน
กลับมาที่ project structure ใน src (ขอเอาเฉพาะ folder ที่เกี่ยวข้องมาแสดง)
├── src
├── App.vue
├── components --> รวม component ทั้งหมดของ vue เอาไว้
│ ├── HelloWorld.vue
│ ├── TheWelcome.vue
│ ├── WelcomeItem.vue
├── main.js
├── router --> folder ของ router
│ └── index.js --> ที่ตำแหน่งของ router
├── stores
│ └── counter.js
└── views --> รวม component ระดับ page ของ component เอาไว้
├── AboutView.vue
└── HomeView.vue
เรามาทำความเข้าใจก่อนว่า Component ที่ folder นี้แบ่งมาจะแบ่ง Component ออกเป็น 2 แบบคือ
- Page Component (ใน folder views) คือ Component ที่เป็นเหมือน Root Component ของแต่ละ path ที่เรามีการเปิดขึ้นมา
- Common Component (ใน folder component) คือ Component ที่เป็นเหมือน Component ที่สามารถ reuse ใช้งานผ่าน Page Component ได้
ซึ่ง Router นั้นจะเป็นการกำหนด path ผ่าน Page Component ได้ โดยถ้าเรามาดูที่ src/router/index.js
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
component: () => import('../views/AboutView.vue')
}
]
})
export default router
เราจะเจอองค์ประกอบใหญ่ๆอยู่ 3 ตัวคือ
- path ระบุว่าจะให้เข้าผ่าน path ไหน
- name เป็นการระบุชื่อ path ของ Component
- component เป้น component ที่จะเรียกใช้ใน path นั้น
{
path: '/about', // path = '/about'
name: 'about', // path name = 'about'
component: AboutView // component ของหน้านั้น
}