<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
。