Main.js
{
var index = -1;
for(var i = 0; i < routeList.length; i++) {
if(routeList[i].name == to.name) {
index = i;
break;
}
}
if (index !== -1) {
//如果存在路由列表,则把之后的路由都删掉
routeList.splice(index + 1,routeList.length - index - 1);
} else if(to.name != '登录'){
routeList.push({"name":to.name,"path":to.fullPath});
}
to.Meta.routeList = routeList;
next()
});
2、在要使用的组件中
rush:js;">
arator="/">
用 watch 或者 beforeRouteEnter 均可。
需要注意的是,beforeRouteEnter 此时访问不到this。
rush:js;">
const Foo = {
template: `...`,beforeRouteEnter (to,next) {
// 在渲染该组件的对应路由被 confirm 前调用
// 不!能!获取组件实例 `this`
// 因为当守卫执行前,组件实例还没被创建
},beforeRouteUpdate (to,next) {
// 在当前路由改变,但是该组件被复用时调用
// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
// 可以访问组件实例 `this`
},beforeRouteLeave (to,next) {
// 导航离开该组件的对应路由时调用
// 可以访问组件实例 `this`
}
}