=============================转载==================================
每天进步一点点~~~
第一步 在app中设置需要缓存的div
//缓存的页面
1 <keep-alive> 2 <router-view v-if="$route.meta.keepAlive"></router-view> 3 </keep-alive> 4 5 //不缓存的页面 6 <router-view v-if="!$route.meta.keepAlive"></router-view>
第二步 在路由router.js中设置.vue页面是否需要缓存
1 { 2 path: '/', 3 name: 'HomePage', 4 component: HomePage, 5 meta: { 6 keepAlive: false, //此组件不需要被缓存 7 isBack: false, //用于判断上一个页面是哪个 8 } 9 }, 10 { 11 path: '/insure', 12 name: 'Insure', 13 component: insure, 14 meta: { 15 keepAlive: true, //此组件需要被缓存 16 isBack:false, //用于判断上一个页面是哪个 17 } 18 }, 19 { 20 path: '/confirm', 21 name: 'confirm', 22 component: confirm, 23 meta: { 24 keepAlive: false, //此组件不需要被缓存 25 isBack:false, //用于判断上一个页面是哪个 26 } 27 }
第三步
1 beforeRouteEnter(to, from, next) { 2 if (from.name == 'confirm') { 3 to.meta.isBack = true; 4 } 5 next(); 6 }
第四步
当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。
当再次进入(前进或者后退)时,只触发activated。
第五步
默认执行这个方法
1 activated() { 2 if (!this.$route.meta.isBack) { //true执行 3 // 如果isBack是false,表明需要获取新数据,否则就不再请求,直接使用缓存的数据 4 //清空表单 5 6 } 7 // 恢复成默认的false,避免isBack一直是true,导致下次无法获取数据 8 this.$route.meta.isBack = false; 9 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)