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 相关文章推荐
统一接口:为FireFox添加IE的方法和属性的js代码
Mar 25 Javascript
关于javascript 回调函数中变量作用域的讨论
Sep 11 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
浅谈JavaScript超时调用和间歇调用
Aug 30 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
Feb 24 Javascript
Vue表单验证插件的制作过程
Apr 01 Javascript
React-Native做一个文本输入框组件的实现代码
Aug 10 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
layerUI下的绑定事件实例代码
Aug 17 Javascript
基于javascript的拖拽类封装详解
Apr 19 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企业级应用之常见缓存技术篇
2011/01/27 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
简单谈谈json跨域
2016/03/13 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
JS实现打字游戏
2019/12/17 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
python 实现登录网页的操作方法
2018/05/11 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
初中美术教学反思
2014/01/29 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
学习教师法的心得体会
2014/09/03 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
办理收楼委托书范本
2014/10/09 职场文书
社区植树节活动总结
2015/02/06 职场文书
医院志愿者活动总结
2015/05/06 职场文书
大学团日活动总结书
2015/05/11 职场文书
安全责任协议书范本
2016/03/23 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python