vue中的keep-alive

181 阅读1分钟

keep-alive是vue的内置组件,用它来包裹会变化的组件,例如:动态组件和路由组件。它主要用于保留组件状态或避免重新渲染,也称缓存。

它的基本格式是:

<keep-alive inculde='字符串或正则表达式' exclude='字符串或正则表达式' max='最大可缓存数'>
     动态组件/ 路由组件
</keep-alive>

其中:

  • include:字符串或正则表达式。只有名称匹配的组件(根据组件名)会被缓存。
  • exclude:字符串或正则表达式。任何名称匹配的组件都不会被缓存。
  • max:数字。最多可以缓存多少组件实例。

注意:

  • <keep-alive> 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中:调试工具中不可见。
  • 当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。

典型的应用场景有

从列表页路由跳转到详情页,然后再后退回到列表页。由于是两个独立的路由级别的组件,所以这里会涉及到对列表页的销毁和重建,如果对列表页缓存,就可以减少这部分的消耗。