1.问题:在Vue项目开发中遇到根据登录来判断页面跳转时遇到死循环的问题。
2.错误代码如下:
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
const token = store.getters.getToken
router.beforeEach((to, from, next) => {
if (!token) {
next({ name: 'error' })
}
// 有权限
next()
})
export default router
3.解决办法如下
router.beforeEach((to, from, next) => {
const excludePath = ['error']
if (!token && excludePath.indexOf(to.name) === -1) {
next({ name: 'error' })
}
// 有权限
next()
})
总结:在使用路由守卫时,需有相应的结束条件,否则会一直循环下去。
版权声明:本文为Kratial原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。