router上的三个路由守卫函数
beforeEach
router.beforeEach((to, from, next) => {
console.log('beforeEach invoked');
if(to.fullPath.startsWith('/app')){
//调用next才会进行跳转
//不要跳转到自己,会infinite loop
// next('/login');
next('/login');
//不仅可以写字符串,也可以写一个object,传入的和router-link上声明的东西是一样的
next({path:'/login',replace:true})
}else{
next();
}
next();
});
beforeResolve
router.beforeResolve((to, from, next) => {
console.log('beforeResolve invoked');
next();
})
afterEach
router.afterEach((to, from) => {
//无需next,路由已经跳转
console.log('afterEach invoked');
});
更多 Vue学习