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 相关文章推荐
jQueryUI如何自定义组件实现代码
Nov 14 Javascript
Jquery 的outerHeight方法使用介绍
Sep 11 Javascript
浅析IE10兼容性问题(frameset的cols属性)
Jan 03 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
基于Bootstrap实现图片轮播效果
May 22 Javascript
js严格模式总结(分享)
Aug 22 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
Jul 21 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
js实现轮播图特效
May 28 Javascript
原生js实现随机点名
Jul 05 Javascript
vue实现两个组件之间数据共享和修改操作
Nov 12 Javascript
el-table-column 内容不自动换行的解决方法
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下使用SimpleXML 处理XML 文件
2010/02/27 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
python中正则的使用指南
2016/12/04 Python
python调用外部程序的实操步骤
2019/03/04 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
法人代表授权委托书
2014/04/08 职场文书
化工专业自荐书
2014/06/16 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
保密工作整改报告
2014/11/06 职场文书
行政文员岗位职责
2015/02/04 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
城南旧事观后感
2015/06/11 职场文书
西安事变观后感
2015/06/12 职场文书
消防安全主题班会
2015/08/12 职场文书