vue-router beforeEach出现死循环

vue router 在beforeEach处理登录出现问题

有问题代码如下:

router.beforeEach((to, from, next) => {
  
  let token = localStorage.getItem('token')
  if(token){
    next()
  }else{
    if(to.fullPath == '/'){
      next()
    } else{
      next({ path: '/login' })
      //next()
    }
  }

})

  

当未获取到token时候,需要进入到login页面,此时会一直出现死循环,报错如下

 

 

 原因:因为进入login页面时候,/login又会进入beforeEach里面,这样就造成了死循环

  

  解决方式如下:

let token = localStorage.getItem('token')
  if(token){
    next()
  }else{
    if(to.fullPath == '/'){
      next()
    } else if (to.fullPath == '/login'){
      next()
    }else{
      next({ path: '/login' })
      //next()
    }
  }

  

posted @ 2021-05-17 18:16  will很忙  阅读(936)  评论(0编辑  收藏  举报