首页 > 其他 > 详细

vue中路由拦截无限循环的情况

时间:2019-09-16 10:42:27      阅读:76      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

router.beforeEach(async (to, from, next) => {
  if (token) {
    if (whiteList.indexOf(to.path) != -1) {
      next()
    } else {
      next(‘404‘)
    }
  } else {
      console.log(‘test‘)
      next(‘404‘)
  }
})

上述实例中在没有token的情况下出现无限循环

原因分析:

在设置路由拦截的时候当指向另一个地址的时候还会触发一次路由拦截,既每次地址栏的变化都会触发一次路由拦截,在没有token值的时候会一直向404跳转,所以会出现无限循环的情况

需要在进行跳转的时候有一个满足跳转条件的来阻止跳转带来的路由拦截

router.beforeEach(async (to, from, next) => {
  if (token) {
    if (whiteList.indexOf(to.path) != -1) {
      next()
    } else {
      next(‘404‘)
    }
  } else {
    if (to.path === ‘/404‘) {
      next()
    } else {
      console.log(‘test‘)
      next(‘404‘)
    }
  }
})

在上述代码中加入一个404,在每次进入路由拦截的时候就会定向到404来终止地址的跳转,这样就防止了无限循环

vue中路由拦截无限循环的情况

原文:https://www.cnblogs.com/wyongz/p/11525677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!