<router-link to=""></router-link>
vue
<router-link to="/ar/1">測試一</router-link> <router-link to="/ar/2">測試二</router-link>
在vue-router2.x中使用<router-link
的方式,v1.x中使用<a v-link="'/about'">About</a>
vue-router
<router-link to="/ar/1?id=1&age=22">測試一</router-link> <router-link to="/ar/2?id=2&age=24">測試二</router-link>
在vue-devtools中可查看到全部的某個路由的全部信息:
瀏覽器
路由的重定向須要咱們在路由文件中配置:測試
new Router({ ... { path: '/ar', name: 'ar', component: Ar },{ path: '/ar/1', redirect: '/ar/2', // 配置redirect跳轉到測試二 name: 'ar1', component: Ar1 },{ path: '/ar/2', name: 'ar2', component: Ar2 } ] })
注意:從圖中看出,雖然路由發生了跳轉,可是後面跟的參數並無發生變化。code
beforeRouteEnter(to, from, next) 進入路由時候觸發component
beforeRouteLeave(to, from, next) 離開路由時候觸發router
參數含義:對象
注意的點:在我寫demo的時候發現,若是你在一個組件這麼定義blog
... beforeRouteEnter (to, from, next) { }, ...
進入路由鉤子中什麼也不執行next()
的話,會一直沒法跳轉到對應的路由路由
因此,建議一旦用了組件鉤子,就必定不要忘記next
!
activate
被替換爲beforeRouteEnter
deactivate
被移除,使用beforeDestroy
或者 destroyed
鉤子做爲替代。canActivate
被替換爲beforeEnter
canDeactivate
被替換爲beforeRouteLeave
須要嵌套的目錄結構:
如今路由文件中配置:
new Router({ routes: [ ... { path: '/ar', name: 'ar', component: Ar, children:[ // 在ar中添加children子路由 { path: '1', name: 'ar1', component: Ar1 }, { path: '2', name: 'ar2', component: Ar2 } ] } // ,{ // path: '/ar/1', // name: 'ar1', // component: Ar1 // },{ // path: '/ar/2', // name: 'ar2', // component: Ar2 // } ] })
ar.vue文件:
<template> <div> Ar下有兩個嵌套的子路由 <router-link to="/ar/1?id=1&age=22">子路由一</router-link> <router-link to="/ar/2?id=2&age=24">子路由二</router-link> <router-view></router-view> </div> </template>
可見這個單文件中有兩個router-view
。