Vue Router
Vue Router 是官方路由。它讓 URL 對應到元件,點連結只換頁面區塊、不整頁刷新。這就是單頁應用(SPA)的導覽層。
最小設定
import { createApp } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import App from './App.vue'
import Home from './pages/Home.vue'
import About from './pages/About.vue'
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', component: Home },
{ path: '/about', component: About },
{ path: '/users/:id', component: User, props: true },
],
})
createApp(App).use(router).mount('#app')
App.vue 放出口:
<template>
<nav>
<RouterLink to="/">首頁</RouterLink>
<RouterLink to="/about">關於</RouterLink>
</nav>
<RouterView />
</template>
RouterLink 會渲染成 <a> 並攔截點擊;RouterView 顯示目前路由對到的元件。動態段 :id 在元件裡用 useRoute().params.id 讀取。
程式導向與守衛
import { useRouter } from 'vue-router'
const router = useRouter()
router.push('/about')
router.push({ name: 'user', params: { id: 1 } })
進頁前檢查登入,用導航守衛:
巢狀路由(layout + 子頁)、懶載入(() => import('./Page.vue'))、404 用 /:pathMatch(.*)*。細節見官方指南。
推薦影音
Vue JS 3 Tutorial #8 — The Vue Router
來源:Net Ninja 約 48 分鐘
從為什麼需要 Router 講到設定、RouterLink、動態參數、轉址與 404。對應本頁「最小設定」與「程式導向」。部分畫面仍是 Vue CLI,新專案請用 create-vue 勾選 Router。
State, Routing, and the Future of Vue
來源:MonteTalks 訪問 Pinia/Vue Router 作者 Eduardo San Martin Morote
談路由、狀態管理與 Vue 接下來的方向。適合核心語法熟了、開始組正式應用時聽。