报错:Maximum call stack size exceeded (堆栈溢出)

 在写路由守卫时报错:

分析问题

其实可以明显的看到信息已经提示是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() 直接放行 都可

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值