在写路由守卫时报错:
分析问题
其实可以明显的看到信息已经提示是vue-router出了问题。就去看我的路由拦截器 发现有一个拦截会跳到登录页面
路由守卫:
router.beforeEach((to, from, next) => {
if (getToken() !== null && to.path === '/login') {
// 有token 并且要去登录页
// next(false)
// 如果用的history模式路由, next(false)会造成路由路径为空
next('/')
} else {
next() // 放行
}
})
next('/') 跳到了默认路由
然后去查看了路由规则:发现我重定向了路由
相当于从 ‘’/‘ 跳到了登录页--然后一直’递归/获得 token 造成 堆栈溢出,大概意思是递归太深,导致栈溢出。
{
path: '/',
// 重定向 路由路径
redirect: '/login'
},
解决方案:
next('/') 多此一举
改成 next(false) 留在原地或者 next() 直接放行 都可