vue 使某个组件不被 keep-alive 缓存的方法


Posted in Javascript onSeptember 21, 2018

提出问题

最近在做项目发现一个问题,当我使用了 keep-alive 标签后,进入了某个路由进行一系列操作,再点击浏览器后退,再次进入刚才的路由,页面被操作的数据没有初始化!

分析问题

这是因为 keep-alive 将路由页面缓存,所以该路由没有完成整个生命周期,没有 destroyed,因此重新进入也没有触发其他生命周期钩子,如 created 等。

解决问题

(1). 查看官方文档

当组件在 keep-alive 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。

include - 字符串或正则表达式。只有匹配的组件会被缓存。

exclude - 字符串或正则表达式。任何匹配的组件都不会被缓存。

<!-- 逗号分隔字符串 -->
<keep-alive include="a,b">
 <component :is="view"></component>
</keep-alive>
<!-- 正则表达式 (使用 `v-bind`) -->
<keep-alive :include="/a|b/">
 <component :is="view"></component>
</keep-alive>
<!-- 数组 (使用 `v-bind`) -->
<keep-alive :include="['a', 'b']">
 <component :is="view"></component>
</keep-alive>

匹配首先检查组件自身的 name 选项,如果 name 选项不可用,则匹配它的局部注册名称 (父组件 components 选项的键值)。匿名组件不能被匹配。

(2). 监听路由变化

使用 watch 监听路由变化,但是我发现监听路由只有在组件被 keep-alive 包裹时才生效,未包裹时不生效,原因不明,理解的小伙伴请留言告诉我!

watch: {
 '$route' (to, from) {
   // 对路由变化作出响应...
  }
}

beforeRouteUpdate 这个钩子目前我发现还不能用,不知道哪里出错。

beforeRouteUpdate (to, from, next) {
  // react to route changes...
  // don't forget to call next()
 }

以上这篇vue 使某个组件不被 keep-alive 缓存的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript hashtable实现代码
Oct 13 Javascript
jquery 触发a链接点击事件解决方案
May 02 Javascript
jquery获取当前日期的方法
Jan 14 Javascript
JavaScript中常见的字符串操作函数及用法汇总
May 04 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 Javascript
jquery如何获取元素的滚动条高度等实现代码
Oct 19 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
AngularJS入门示例之Hello World详解
Jan 04 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 Javascript
解读Vue组件注册方式
May 15 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
解决vue keep-alive 数据更新的问题
Sep 21 #Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 #Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 #Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 #Javascript
基于vue中keep-alive缓存问题的解决方法
Sep 21 #Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 #Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 #Javascript
You might like
PHP的FTP学习(一)
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
python使用正则表达式提取网页URL的方法
2015/05/26 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
房地产融资计划书
2014/01/10 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
核心价值观演讲稿
2014/05/13 职场文书
房屋所有权证明
2015/06/19 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
中秋节祝酒词
2015/08/12 职场文书