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
        }
    }
})
相关推荐
大怪v4 小时前
AI抢饭?前端佬:我要验牌!
前端·人工智能·程序员
新酱爱学习4 小时前
字节外包一年,我的技术成长之路
前端·程序员·年终总结
小兵张健4 小时前
开源 playwright-pool 会话池来了
前端·javascript·github
IT_陈寒7 小时前
Python开发者必知的5大性能陷阱:90%的人都踩过的坑!
前端·人工智能·后端
codingWhat7 小时前
介绍一个手势识别库——AlloyFinger
前端·javascript·vue.js
Lee川7 小时前
深度拆解:基于面向对象思维的“就地编辑”组件全模块解析
javascript·架构
代码老中医7 小时前
2026年CSS彻底疯了:这6个新特性让我删掉了三分之一JS代码
前端
进击的尘埃7 小时前
Web Worker 与 OffscreenCanvas:把主线程从重活里解放出来
javascript
不会敲代码18 小时前
Zustand:轻量级状态管理,从入门到实践
前端·typescript
踩着两条虫8 小时前
VTJ.PRO 双向代码转换原理揭秘
前端·vue.js·人工智能