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中的闭包原理分析
Mar 08 Javascript
JavaScript打印iframe内容示例代码
Aug 20 Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
javascript判断数组内是否重复的方法
Apr 21 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
Bootstrap项目实战之首页内容介绍(全)
Apr 25 Javascript
使用bat打开多个cmd窗口执行gulp、node
Feb 17 Javascript
js仿拉勾网首页穿墙广告效果
Mar 08 Javascript
JS得到当前时间的方法示例
Mar 24 Javascript
Angular4学习教程之HTML属性绑定的方法
Jan 04 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
Oct 08 Javascript
解决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
香妃
2021/03/03 冲泡冲煮
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
Element Input组件分析小结
2018/10/11 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python:slice与indices的用法
2019/11/25 Python
tensorflow 查看梯度方式
2020/02/04 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
档案接收函
2014/01/13 职场文书
基层党组织公开承诺书
2014/03/28 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
股权转让协议书
2014/12/07 职场文书
道歉短信大全
2015/05/12 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP