javascript - 使用vue-router的beforeEach钩子,next('/')报错
PHP中文网
PHP中文网 2017-04-11 10:07:17
[JavaScript讨论组]

使用next()和next(false)都没问题,使用next('/index')就报错

PHP中文网
PHP中文网

认证0级讲师

全部回复(5)
大家讲道理

把堆栈打开看看。
Maximum call stack size 是不是死循环了,堆栈超出限制。


beforeEach

你这里不加条件判断,当next('/index');执行的时候beforeEach又会执行如此重复。我不太清楚你这么做的理由是什么,不过显然你不应该这样做。

if(con) {
    next('/index')
}
next()
巴扎黑

我猜是next('/index')时也触发了beforeach

黄舟

if (to.matched.some(record => record.meta.requiresAuth)) {

 if(con) {
    next('/index')
  }

}else{

next()

}

官网上面的:

天蓬老师

路由1:next('/index')
路由index:next('/index')

死循环了

巴扎黑
next('/index')又会调用beforeEach,我是这样写的
let isLogin = Boolean(store.state.token.token)
if (!isLogin) {
    if (to.path !== '/login') {
      return next({ path: '/login' })
    } else {
      next()
    }
  }else {
    if (to.path === '/login') {
      return next({path: '/posts'})
    }
    next()
  }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号