keep-alive原理

208 阅读1分钟

是什么

  1. keep-alive是一个抽象的全局组件
  2. keep-alive不会渲染一个DOM元素,也不会出现在父组件链中
  3. keep-alive包裹动态组件时,会缓存不活动的组件,而不是销毁它们

怎么用

keep-alive接收三个参数:

  • include:可传字符串、正则表达式、数组,名称匹配成功的组件会被缓存
  • exclude:可传字符串、正则表达式、数组,名称匹配成功的组件不会被缓存
  • max:可传数字,限制缓存组件的最大数量

includeexclude,传数组情况居多

// 动态组件
<keep-alive :include="allowList" :exclude="noAllowList" :max="amount"> 
    <component :is="currentComponent"></component> 
</keep-alive>

// 路由组件
<keep-alive :include="allowList" :exclude="noAllowList" :max="amount">
    <router-view></router-view>
</keep-alive>

相关联

生命周期:activated(激活)、deacitvated(冻结)

怎么实现