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 相关文章推荐
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
浏览器页面区域大小的js获取方法
Sep 21 Javascript
javascript获取url上某个参数的方法
Nov 08 Javascript
ListBox实现上移,下移,左移,右移的简单实例
Feb 13 Javascript
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
js解决select下拉选不中问题
Oct 14 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 Javascript
浅谈React中组件逻辑复用的那些事儿
May 21 Javascript
vue调用本地摄像头实现拍照功能
Aug 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 isset()与empty()的使用区别详解
2010/08/29 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
ExpressJS入门实例
2015/01/14 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
React中的refs的使用教程
2018/02/13 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
py-charm延长试用期限实例
2019/12/22 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python实现简单坦克大战
2020/03/27 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
简历中自我评价范文3则
2013/12/14 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
2013年军训通讯稿
2014/02/05 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
大学生演讲稿
2014/04/25 职场文书
派出所所长先进事迹
2014/05/19 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
银行先进个人总结
2015/02/15 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python