vue的keep-alive组件清除缓存
场景是,从列表跳转到详情页,再次返回列表页时要记住之前列表页的页码、搜索关键词等,采用keepa-live缓存组件。
在路由文件配置meta.keepAlive:
{path: '/List',name: 'List',component: List,meta: { keepAlive: true }
}
修改App.vue的router-view:
<keep-alive><router-view :key="$route.name" v-if="$route.meta.keepAlive"/>
</keep-alive>
<router-view :key="$route.name" v-if="!$route.meta.keepAlive"/>
从别的页面进列表页不能还读取缓存,因此在离开的时候要清除缓存:
beforeRouteLeave(to, from, next) {if (to.path == "/Detail") {from.meta.keepAlive = true;} else {let vnode = that.$vnodelet parentVnode = vnode && vnode.parent;if (parentVnode && parentVnode.componentInstance && parentVnode.componentInstance.cache) {var key = vnode.key == null? vnode.componentOptions.Ctor.cid + (vnode.componentOptions.tag ? `::${vnode.componentOptions.tag}` : ''): vnode.key;var cache = parentVnode.componentInstance.cache;var keys = parentVnode.componentInstance.keys;if (cache[key]) {that.$destroy()// remove keyif (keys.length) {var index = keys.indexOf(key)if (index > -1) {keys.splice(index, 1)}}cache[key] = null}}}next();}
特别注意一点,如果项目中有多层router-view嵌套,那就不要在App.vue里写,而应该在最底下一层router-view所在的位置写,否则缓存会清除失败。
vue的keep-alive组件清除缓存相关推荐
- vue项目部署,自动清除缓存配置
清除文件缓存 1.index.html 文件添加 http-equiv(http 响应头) 通过在head标签中添加meta,当浏览器访问index.html时,会向服务器重新请求静态资源.该方法了解 ...
- vue关闭页面刷新页面清除缓存
mounted() {this.enterPage()}, destroyed(){this.leavePage() }, methods: { /* 打开:load 关闭:beforeload+un ...
- Vue学习(动态组件、组件路由缓存keepalive)-学习笔记
文章目录 Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 组件路由缓存keepalive Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 < ...
- [vue] 怎么缓存当前打开的路由组件,缓存后想更新当前组件怎么办呢?
[vue] 怎么缓存当前打开的路由组件,缓存后想更新当前组件怎么办呢? 可以在路由meta中加入参数, 对打开的路由进行keep-alive的判断, 通过钩子active等 个人简介 我是歌谣,欢迎和 ...
- [vue] vue怎么缓存当前的组件?缓存后怎么更新?
[vue] vue怎么缓存当前的组件?缓存后怎么更新? keep-alive 通过actived钩子 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 ...
- Vue组件设置缓存kepp-alive 后如何获取数据
Vue组件设置缓存kepp-alive 后如何获取数据 解决方案 : beforeRouteEnter activated beforeRouteEnter 每次进去组件渲染时,都会执行beforeR ...
- vue的pc项目每次扫码登录时,需要清除缓存才能扫码登录成功问题,求解决方案
所遇问题:vue的pc端项目每次扫码登录的时候需要清除缓存才能登录成功 先贴几个登录时的效果图 如图红色箭头标记的部分,第一次打开项目时,没有进行清除缓存的操作,扫码后,可以看到拿到了我的个人信息 在 ...
- ant design vue 清空upload组件图片缓存的方法
当关闭这个窗口后,再次打开,上传上传的图片清空 在upload 这个组件外加一个key 赋随机值,便可清除缓存缓存 代码如下: <a-modal v-model="visible&qu ...
- vue 页面保留缓存和清除缓存
路由: routes: [{ path: '/page1', name: page1', component: page1', meta:{ keepAlive:true //true是保存缓存,f ...
最新文章
- 多人合作开发的标准制定
- perl 远程 mysql_写的一个perl脚本,用于发送远程MySQL命令
- Async Solr Queries in Python
- MS UC 2013-0-虚拟机-标准化-部署-1-虚拟化-部署
- 微服务深入浅出(7)-- 网关路由Zuul
- 哈哈哈,弟弟被卡桶里了......
- C#LeetCode刷题-几何
- 内存-ECC RDIMM 服务器内存条简介(常被叫做RECC内存条)
- redies 学习笔记
- 易语言输出mysql日志_个人理解的易语言下的日志总结(备忘)
- 国际区号json(含国家中英文名称、简称、区号、首拼)
- Gallery 是国外一个免费开源的图库相册软件
- 搞学术不完全指北【包括谷歌学术镜像、论文工具、Wiki、SCI-HUB文献下载、翻译等】
- 【小程序项目开发 --- 京东商城】 启航篇之uni-app项目搭建
- solr 查询出异常org.apache.solr.search.SyntaxError: Cannot parse
- 微信开发如何优雅的注入token(2)
- 好用的SQL工具盘点:从学习到工作总有一款适合你
- android glide缺少方法,android - 无法膨胀且找不到类android支持设计的行为BottomSheetBehavior - 堆栈内存溢出...
- 记录Win10正确安装CUDA和cuDNN的过程(记录一些坑)
- MySQL数据库安装,配置My.ini文件
热门文章
- 看完阿里最新产500页微服务架构笔记,感觉我格局太小
- php 车型分类筛选,车型分类_车型详解 - 买车攻略 - 淘车
- 入门级爬虫-17k小说站爬取指定小说
- 现实比较室内集成墙装修好还是刮墙的好
- 代码质量与安全 | “吃狗粮”能够影响到代码质量?来了解一下!
- 网页中增加QQ在线咨询的功能
- 初识遗传算法(二): 适应度地形与协同进化
- 用 ESP32 + HaaS Python 打造 RFID 智能刷卡门禁系统
- 好用的微信账号开通检测方法
- 矩阵旋转——(c语言)