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 相关文章推荐
js中cookie的使用详细分析
May 28 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
详解Angular 4.x Injector
May 04 Javascript
vue-resouce设置请求头的三种方法
Sep 12 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 Javascript
Vue使用localStorage存储数据的方法
May 27 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
在vue中根据光标的显示与消失实现下拉列表
Sep 29 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
php微信开发之关注事件
2018/06/14 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
python中的五种异常处理机制介绍
2014/09/02 Python
python写日志封装类实例
2015/06/28 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Django权限设置及验证方式
2020/05/13 Python
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
迟到检讨书900字
2014/01/14 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
教师工作失职检讨书
2014/09/18 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
员工自我工作评价
2015/03/06 职场文书
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫