vue roture路由拦截使用钩子函数beforeEach
一开始想想个测试的拦截
router.beforeEach((to, from, next) => {
if (to.path === '/') {
next()
} else {
if (!store.state.userName || store.state.userName === '') { // 假设没登录
next({path: '/Login'})
} else {
next()
}
}
})
结果会报错,出现死循环
最后解决方案
router.beforeEach((to, from, next) => {
if (to.path === '/' || to.path === '/Login') { // to.path === '/Login' 是跳出死循环的关键
next()
} else {
if (!store.state.userName || store.state.userName === '') { // 假设没登录
next({path: '/Login'})
} else {
next()
}
}
})