vue中keep-alive多级路由缓存问题怎么处理
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"vue中keep-alive多级路由缓存问题怎么处理"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月03日vue中keep-alive多级路由缓存问题怎么处理1.问题描述
2.原因分析
3.解决思路
本篇内容介绍了"vue中keep-alive多级路由缓存问题怎么处理"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.问题描述
对账中心当便捷导航菜单最后两个是同一模块且是三级及以上菜单时,正常切换两个便捷页签时是可以正常缓存的,但删除最后一个页签时,此时另一个页签页面此时已经不缓存了。
2.原因分析
keep-alive默认支持缓存是两级,对三级及以上层级的页面缓存失效,之前的处理方式为: 监听到路由变化后,将当前的路由的标识及父级标识一起存起来,当多个页面存在时,关闭其中一个页面,也会将本身及父级的标识一起删掉,此时数组中已无父级标识,其他同级页面的缓存将失效。
3.解决思路
将路由配置表的所有路由拆成两个操作,一是保持原样用于菜单的展示,二是对路由配置表进行扁平化处理,将所有的路由处理成二级路由,这样keep-alive就能默认支持缓存了。
4.处理过程
拿到完整的路由配置
const modules = []files.keys().forEach(key => { const filesObj = files(key).default || files(key) Object.keys(filesObj).forEach(keyOne => { modules.push(filesObj[keyOne]) })})操作完成路由配置
export const menuList = modules; // 用于菜单展示const routerList = formatTwoStageRoutes(formatFlatteningRoutes(modules)); // 将路由扁平化为二级路由const router = new VueRouter({ scrollBehavior: () => ({ y: 0 }), mode: 'history', base: process.env.BASE_URL, routes: routerList, // 在路由配置项中使用扁平化处理后的路由})扁平化方法
export const formatFlatteningRoutes =(routesList => { if (routesList.length <= 0) return routesList; let list = []; routesList.forEach(v => { if(v.path === '/') { // 用于添加初试layout和首页,其他各中心配置过滤掉layout及父节点,只保留children内路由 list.push(v); list = list.concat(formatFlatteningRoutes(v.children)) } else if (v.children && v.children.length > 0) { list = list.concat(formatFlatteningRoutes(v.children)) } else { list.push(v); } }) return list;})export const formatTwoStageRoutes = list => { if (list.length <= 0) return list; const routerList = []; list.forEach(v => { if (v.path === '/') { routerList.push({ component: v.component, name: v.name, path: v.path, redirect: v.redirect, meta: v.meta, children: [] }) } else if (v.path === '/login' || v.path === '/showcasePage') { // 不需要配置layout的页面 routerList.push(v) } else { routerList[0].children.push({ ...v }) } }) return routerList;}"vue中keep-alive多级路由缓存问题怎么处理"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
路由
缓存
处理
配置
页面
扁平
标识
菜单
问题
两个
便捷
内容
更多
知识
过程
支持
实用
学有所成
接下来
原因
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
苏州找大状互联网科技有限公司
互联网和科技创新
嘟嘟瓜互联网科技
鑫亿盛互联网科技
万达互联网科技
互联网科技有限公司 翻译
富国互联网科技创新基金
湖南洣水互联网科技有限公司扣款
玖二柒互联网科技公司待遇
青岛中康互联网医疗科技有限公司
哈尔滨新华互联网科技学院
佛山市拉法互联网科技有限公司
科技互联网的核心竞争力
北京市互联网新科技
互联网相关科技技术
南京一网一红互联网科技有限公司
杭州科技互联网公司有哪些
平安好医生打造互联网科技医疗
伍佰万互联网科技是干嘛的
科技互联网
互联网科技活动banner
科技互联网产品
互联网科技有限公司图片
互联网科技博客
甘肃拓世互联网科技有限公司
华脉科技工业互联网产品
互联网公司会议桌创意科技软装饰
新兴科技互联网创新大赛颁奖典礼
上海同邻互联网科技有限公司规模