问题:在做某项目时,只希望某个页面在切换页面时,不重新加载,加入缓存。
实现:
1、在store/modules/permission.js中对单独页面进行处理
function filterAsyncRouter(asyncRouterMap) {
return asyncRouterMap.filter(route => {
if (route.component) {
// Layout组件特殊处理
if (route.component === 'Layout') {
route.component = Layout
} else {
console.log(route,'======');
// 处理获取积分详情/兑换积分详情加入缓存
if(route.path == "mallIntegralDetailIn" || route.path == "mallIntegralDetailOut"){
route.meta.noCache = false
}
route.component = loadView(route.component)
}
}
if (route.children != null && route.children && route.children.length) {
route.children = filterAsyncRouter(route.children)
}
return true
})
}
但要注意路由的name字段大小写的问题!!!!!

image.png
具体要某个页面的name字段要与其保持一致!!!!

image.png
只有保持name一致,缓存才会生效!!!!
当然,有些系统,在配置菜单的时候,会有是否缓存的选项,这个是针对页面无这种设置的情况,进行的处理!!!