Javascript

vue-router beforeEach出现死循环

本文主要是介绍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()
    }
  }

  

这篇关于vue-router beforeEach出现死循环的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!