[问题记录] 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但是仍然出现了逻辑路径重叠。

相关推荐
恋猫de小郭7 小时前
AndroidX 将引入有全新 AppState ,用于管理 Compose 状态
android·前端·flutter
别问,问就是菜鸡7 小时前
阿里云效前端流水线自动化部署
前端·阿里云·自动化·持续部署
燐妤7 小时前
前端HTML编程4:深入学习CSS
前端·学习·html
2301_816374337 小时前
服务访问的用户认证
前端·网络
XS0301067 小时前
从浏览器到互联网的完整数据流
前端·数据库·servlet·交互
hhb_6187 小时前
MATLAB数值计算与数据可视化核心技术梳理及实战应用案例解析
前端
lichenyang4537 小时前
从零理解微前端:基于 React + Vite + qiankun 的子应用切换 Demo
前端·react.js·状态模式
2601_957780847 小时前
AI智能体时代:为什么HTML正在取代Markdown成为新一代输出标准
大数据·前端·人工智能·gpt·html·claude
2301_815279528 小时前
如何实现C++ Web 自动化测试实战:常用函数全解析与场景化应用指南
开发语言·前端·c++
代码不停8 小时前
Spring Web MVC
前端·spring·mvc