Vue中keep-alive组件作用详解


Posted in Javascript onFebruary 04, 2020

keep-alive组件的作用,供大家参考

作用:用于保留组件状态避免重新渲染(缓存的作用)

比如:当一个目录页面与一个详情页面,用户经常:打开目录页面=>进入详情页面=>返回目录页面=>打开详情页面,这样目录页面就是一个使用频率很高的页面,那么就可以对目录组件使用<keep-alive></keep-alive>进行缓存,这样用户每次返回目录时,都能从缓存中快速渲染,而不用重新渲染

属性

该标签有两个属性include与exclude:

  • include:字符串或者正则表达式。只有匹配的组件会被缓存
  • exclude:字符串或者正则表达式。任何匹配的组件都不会被缓存。

用法

<!-- 基本 -->
<keep-alive>
 <component :is="view"></component>
</keep-alive>

<!-- 多个条件判断的子组件 -->
<keep-alive>
 <comp-a v-if="a > 1"></comp-a>
 <comp-b v-else></comp-b>
</keep-alive>

<!-- 常见应用 -->
<keep-alive>
 <router-view></router-view>
</keep-alive>

注意: 是用在其一个直属的子组件被开关时的情形,要求同时只有一个子元素被渲染

include和exclude属性的使用

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选项不可用,则匹配它的局部注册名称

生命钩子

  • keep-alive提供了两个生命钩子,分别是activateddeactivated。因为keep-alive会将组件保存在内存中,并不会销毁以及重新创建,所以不会重新调用组件的created、mounted这些函数。
  • 被 keep-alive 包裹的组件被缓存之后有两个独有的生命周期: activated 和 deactivated。activated 生命周期在组件激活时调用、deactivated 生命周期在组件停用时调用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
Google 静态地图API实现代码
Nov 19 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
jquery使用remove()方法删除指定class子元素
Mar 26 Javascript
js实现简单的验证码
Dec 25 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 Javascript
JS常用知识点整理
Jan 21 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
JS实现简易计算器
Feb 14 Javascript
WEB前端性能优化的7大手段详解
Feb 04 #Javascript
JavaScript对象属性操作实例解析
Feb 04 #Javascript
JavaScript this使用方法图解
Feb 04 #Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 #Javascript
JavaScript原型继承和原型链原理详解
Feb 04 #Javascript
JavaScript单线程和任务队列原理解析
Feb 04 #Javascript
Vue中this.$nextTick的作用及用法
Feb 04 #Javascript
You might like
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
yii用户注册表单验证实例
2015/12/26 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
python实现12306火车票查询器
2017/04/20 Python
Python 一句话生成字母表的方法
2019/01/02 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python目录和文件处理总结详解
2019/09/02 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
公务员职业生涯规划书范文  
2014/01/19 职场文书
新学期家长寄语
2014/01/19 职场文书
理财计划书
2014/08/14 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
python数字图像处理:图像的绘制
2022/06/28 Python
Nginx跨域问题解析与解决
2022/08/05 Servers