Vue中的keep-alive有什么用

2021-07-07  本文已影响0人  杭州程序员小陈

keep-alive是什么

keep-alive是一个抽象组件:它自身不会渲染一个DOM元素,也不会出现在父组件链中;使用keep-alive包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。

一个场景

用户在某个列表页面选择筛选条件过滤出一份数据列表,由列表页面进入数据详情页面,再返回该列表页面,希望:列表页面可以保留用户的筛选(或选中)状态。 keep-alive就是用来解决这种场景。当然keep-alive不仅仅是能够保存页面/组件的状态这么简单,它还可以避免组件反复创建和渲染,有效提升系统性能。总的来说,keep-alive用于保存组件的渲染状态。

keep-alive用法

<pre data-language="vue" id="crJqI" class="ne-codeblock" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><keep-alive :include="whiteList" :exclude="blackList" :max="amount">   
<component :is="currentComponent"></component> </keep-alive> </pre>
<pre data-language="vue" id="xZsHm" class="ne-codeblock" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><keep-alive :include="whiteList" :exclude="blackList" :max="amount">   
<router-view></router-view> </keep-alive> </pre>

include定义缓存白名单,keep-alive会缓存命中的组件;exclude定义缓存黑名单,被命中的组件将不会被缓存;max定义缓存组件上限,超出上限使用LRU的策略置换缓存数据。

上一篇 下一篇

猜你喜欢

热点阅读