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 showModalDialog 内跳转页面的问题
Nov 25 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
Mar 04 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 Javascript
jQuery实现图片上传和裁剪插件Croppie
Nov 29 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
Angular2 自定义validators的实现方法
Jul 05 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
Dec 16 Javascript
Jquery Datatables的使用详解
Jan 30 jQuery
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 Javascript
vue实现简易音乐播放器
Aug 14 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调用dll的实例操作动画与代码分享
2012/08/14 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
Python中的zip函数使用示例
2015/01/29 Python
python获取从命令行输入数字的方法
2015/04/29 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
基于python实现百度翻译功能
2019/05/09 Python
详解python运行三种方式
2019/05/13 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
Ref与out有什么不同
2012/11/24 面试题
大学生素质拓展活动方案
2014/02/11 职场文书
普通党员对照检查材料
2014/08/28 职场文书
开学随笔
2015/08/15 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
如何用python插入独创性声明
2021/03/31 Python
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Python 用户输入和while循环的操作
2021/05/23 Python
Pandas-DataFrame知识点汇总
2022/03/16 Python
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技