router.beforeEach

clipboard.png
clipboard.png

看到好多博客中都说router.beforeEach中在调用next('/login')后会再次调用router.beforeEach,但是
!user=true 和 to.path != '/login' 都为 true,执行了 next('/login') 后并没有再次调用router.beforeEach,而且if条件中执行 next('/login') 还是为 true 的,但是我要是把 next('/login') 改为其他路由,就会出现死循环的调用,是因为执行next('/login')后有什么改变吗

阅读 3.4k
2 个回答

你上面写的逻辑会死循环
看了半天感觉就一句话。

let user=xxxxxx
if(!user){
   next({ path: '/login' })
}else{
   next()
}

先搞清楚你一开始打开的页面是不是login,如果是login肯定就只只会执行一次

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题