vue中keep-alive多级路由缓存问题怎么处理
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,本篇内容介绍了"vue中keep-alive多级路由缓存问题怎么处理"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2025年11月15日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安全错误
数据库的锁怎样保障安全
网络安全郑州优势
世界手机版最好玩的服务器有哪些
张一鸣被网络安全约谈
银行网络安全的演讲
瑞星网络安全工程师有用吗
唐山盛晨互联网科技
如何设置网络文字数据库
电子商务数据库技术考点
有关于群聊的网络安全教育
华为云服务器密码多次输入错误
网络安全全教程视频
赤兽网络技术有限公司
达梦数据库连接
小区监控要服务器吗
idm服务器
柏睿数据库技术
车联网网络安全企业主体责任
mysql查看数据库会话
绑定社保卡无法连接到服务器
计算机数据库概念
优优网络服务器
数据库的理解论文
中国网络安全是哪年提出的
广西柳州软件开发公司
我的世界服务器龙域
万州区提供软件开发流程商家
世界软件开发商排名
战地3服务器网页
软件开发轨道
网络安全审查办法治一年