Web應用的路由決定了不同路徑的URL應該在瀏覽器中展現什么內容。在Vue中,路由實現了多頁面應用(MPA)和單頁面應用(SPA)之間的切換,同時還支持動態路由配置,使得我們可以在應用程序運行時動態添加路由,給用戶提供更好的用戶體驗。
Vue中管理路由的工具是vue-router。vue-router是Vue.js官方的路由庫,它與Vue.js的核心深度集成,讓構建單頁應用變得易如反掌。Vue-router可以實現路由間的切換、組件代碼的懶加載等功能,使得我們只需要專注于業務實現就夠了。
// 安裝vue-router
npm install vue-router
在Vue中實現動態路由需要注意以下幾個方面:
1. 路徑匹配規則
路由匹配優先級:精確匹配 > 動態匹配 > 默認匹配。優先級越高的規則最先匹配。
// 動態路由示例
var router = new VueRouter({
routes: [
{ path: '/user/:id', component: User }
]
})
2. 頁面跳轉方式
Vue-router默認使用的是H5的history模式。history模式下,路徑中不帶#,并且在瀏覽器兼容性方面有一些限制(對于IE9及以下瀏覽器,需要使用hash模式)。
// hash路由示例
var router = new VueRouter({
mode: 'hash',
routes: [{ path: '/', component: Home }]
})
3. Router實例配置
Router實例提供了多種配置選項,包含在創建Router實例時使用的配置、路由的元信息、以及子路由的配置等。
// Router實例的元信息示例
const router = new VueRouter({
routes: [
{
path: '/user/:userId',
component: User,
children: [
{
// 當 /user/:userId/profile 匹配成功
// UserProfile 會被渲染在 User 的中
path: 'profile',
component: UserProfile,
meta: { requiresAuth: true }
},
]
}
]
})
4. 動態添加路由
動態路由在開發復雜的大型應用時非常有用。Vue-router的動態路由配置非常簡單,只需要使用router.addRoutes(routes)即可。這樣我們可以在運行時動態給用戶添加路由。
// 動態添加路由示例
const router = new VueRouter()
router.addRoutes([
// 動態添加的路由
{ path: '/foo', component: Foo }
])