vue3项目配置了子路由后刷新页面回到首页解决办法

如果配置了子路由,刷新页面后就会自动回到/页面,如何实现路由保持?

使用路由导航守卫实现状态保持:

代码:

javascript 复制代码
// 白名单路由(不需要保存和恢复)
const whiteList = ['/login', '/404', '/:pathMatch(.*)*']

// 修复后的路由守卫
router.beforeEach((to, from) => {
    // 1. 保存当前路由(排除白名单)
    if (!whiteList.includes(to.path) && to.path !== '/') {
        sessionStorage.setItem('lastPath', to.fullPath)
    }

    // 2. 只有在以下条件都满足时才重定向:
    // - 目标路径是根路径 '/'
    // - 不是白名单路径
    // - 有保存的路径
    // - 保存的路径不是根路径
    // - 保存的路径不是当前要去的路径(避免死循环)
    if (to.path === '/') {
        const lastPath = sessionStorage.getItem('lastPath')

        if (
            lastPath &&
            lastPath !== '/' &&
            !whiteList.includes(lastPath) &&
            lastPath !== to.fullPath
        ) {
            // 关键:避免死循环
            return lastPath
        }
    }
})
相关推荐
努力学编程呀(๑•ี_เ•ี๑)2 小时前
【405】Not Allowed
java·vue.js·nginx·node.js
_Rookie._2 小时前
npm run 的原理
前端·npm·node.js
木斯佳2 小时前
前端八股文面经大全:2026-01-13MiniMax前端实习二面面经深度解析
前端·状态模式
远离UE42 小时前
Blender模型正常导入UE5 FBX 轴向匹配
前端
谭光志2 小时前
OpenClaw 安装与运行教程
前端·后端·ai编程
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue动漫交流与推荐平台系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
0思必得03 小时前
[Web自动化] Selenium浏览器复用
前端·python·selenium·自动化
之歆3 小时前
Linux 系统安装、故障排除、sudo、加密、DNS 与 Web 服务整理
linux·运维·前端
OpenTiny社区3 小时前
TinyEngine 2.10 版本发布:零代码 CRUD、云端协作,开发效率再升级!
前端·vue.js·低代码