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