源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

关于vue-router的beforeEach无限循环的问题解决

  • 时间:2020-04-02 02:45 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:关于vue-router的beforeEach无限循环的问题解决
最近在使用vue-router的beforeEach钩子时候遇到了一个问题,就是在beforeEach()中设置好判断条件后出现了无限循环的问题 代码如下:
router.beforeEach((to, from, next) => {
 if(isLogin){
  next()
 }else{
  console.log('测试')
  next('login')
 }
})
结果chrome的debug中看到: [img]http://files.jb51.net/file_images/article/201709/2017090915313814.png[/img] 这个问题我是这样理解的:
router.beforeEach((to, from, next) => {
  if(true){
    next()
  }else{
    next('login')
  }
})
[list] [*]next() 表示路由成功,直接进入to路由,不会再次调用router.beforeEach()[/*] [*]next('login') 表示路由拦截成功,重定向至login,会再次调用router.beforeEach()[/*] [/list] 也就是说beforeEach()必须调用next(),否则就会出现无限循环,next() 和 next('xxx') 是不一样的,区别就是前者不会再次调用router.beforeEach(),后者会!!! 官网这样写的(主要是红线标记的那句!): [img]http://files.jb51.net/file_images/article/201709/2017090915313815.png[/img] 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部