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
        }
    }
})
相关推荐
Highcharts.js15 小时前
Highcharts 云端渲染的真相:交互式图表与服务器端生成的边界
前端·信息可视化·服务器渲染·highcharts·图表渲染
zhuyan10816 小时前
Linux 系统磁盘爆满导致无法启动修复指南
前端·chrome
编程牛马姐16 小时前
独立站SEO流量增长:提高Google排名的优化方法
前端·javascript·网络
NotFound48616 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
Dontla17 小时前
高基数(High Cardinality)问题介绍(Prometheus、高基数字段、低基数字段)
前端·数据库·prometheus
一 乐18 小时前
医院挂号|基于springboot + vue医院挂号管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·医院挂号管理系统
whuhewei19 小时前
为什么客户端不存在跨域问题
前端·安全
妮妮喔妮19 小时前
supabase的webhook报错
开发语言·前端·javascript
qq_120840937120 小时前
Three.js 大场景分块加载实战:从全量渲染到可视集调度
开发语言·javascript·数码相机
yivifu20 小时前
手搓HTML双行夹批效果
前端·html·html双行夹注