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
        }
    }
})
相关推荐
可乐鸡翅yeah_6 分钟前
HLS流媒体首屏起播慢深度优化,从分片、索引、播放器全链路调优
开发语言·javascript·ecmascript·m3u8·m3u8在线
星空17 分钟前
Map<String, String>`Map`是接口,不能直接 new
java·前端·算法
开开心心就好29 分钟前
低年级识字练笔顺工具,电脑和安卓端都能用
前端·javascript·网络·安全·scala·erlang·语音识别
杨利杰YJlio42 分钟前
ITSK PE 26U5 测试版解读:组件完善、VMD 修复与服务器支持边界
前端·javascript·后端
志尊宝42 分钟前
Vue3 零基础每日笔记(021):class 与 style 动态绑定——对象、数组、三元表达式写法汇总
前端·vue.js·笔记·前端框架·html5
夏幻灵43 分钟前
Vue / React 列表渲染中的 key:为什么没有 key,Checkbox 可能“对号跑错”?
前端·javascript·vue.js
YWL43 分钟前
vue-time-axis-plus进阶:双进度条+跨空白续播+播放指针,打造专业级监控回放体验
前端·javascript·vue·时间轴
mmsx44 分钟前
MapLibre 实战 09|Bug 单写着"地图被风刮走了":一个瓦片源工厂,是三个线上事故换来的
android·前端·开源
不羁的木木1 小时前
给鸿蒙 App 增加打开外部网页能力 —— flutter_web_browser 的鸿蒙使用指南
前端·flutter·harmonyos
广州山泉婚姻1 小时前
微服务时代,前后端分离架构该怎样高效协同?
前端·后端