[问题记录] vue-router中导航守卫默认跳转login失败

问题

做博客后台的时候发现一个问题,在没启动服务的情况下,后台在 router 中并未读取到配置的情况下,应该默认跳转 login 页面。但是页面始终不跳转,并且伴随多个执行错误弹窗。

javascript 复制代码
router.beforeEach(async (to, from, next) => {
    Nprogress.start();
    // 获取系统设置数据
    try {
        const systemData = await getSystem();
    } catch (e) {
        next({name: 'login'})
    }
})

问题解决

javascript 复制代码
router.beforeEach(async (to, from, next) => {
    Nprogress.start();
    // 获取系统设置数据
    try {
        const systemData = await getSystem();
    } catch (e) {
        if (to.name !== 'login') {
            next({name: 'login'})
        }else {
            next();
        }
    }
})

问题分析

其实出现不断报错的情况,虽然在一定次数以后就终止了,但是仍然可以判断为是出现了死循环。(PS:一定次数后终止了应该是Vue框架的优化)

查阅 官方文档 发现其实早已写明:

第三个参数 next ,可以出现多于一次,但是逻辑路径不能重叠。

我在这个地方的死循环就是因为next虽然指定了跳转login但是仍然出现了逻辑路径重叠。

相关推荐
牛奶1 天前
AI辅助开发最佳实践:2026年新方法
前端·aigc·ai编程
C澒1 天前
微前端容器标准化:公共能力标准化
前端·架构
Setsuna_F_Seiei1 天前
AI 对话应用之 JS 的流式接口数据处理
前端·javascript·ai编程
英俊潇洒美少年1 天前
react如何实现 vue的$nextTick的效果
javascript·vue.js·react.js
青柠代码录1 天前
【Vue3】Vue Router 4 路由全解
前端·vue.js
无限大61 天前
《AI观,观AI》:专栏总结+答疑|吃透核心,解决你用AI的所有困惑
前端·后端
蜡台1 天前
element-ui 2 el-tree 内容超长滚动条不显示问题
前端·vue.js·elementui·el-tree·v-deep
小小小小宇1 天前
软键盘常见问题(二)
前端
daols881 天前
vue甘特图 vxe-gantt 如何实现双击连接线自动删除线功能(含二次确认)
vue.js·甘特图·vxe-gantt
小小小小宇1 天前
软键盘常见问题
前端