keep-alive是vue的内置组件,用它来包裹会变化的组件,例如:动态组件和路由组件。它主要用于保留组件状态或避免重新渲染,也称缓存。
它的基本格式是:
<keep-alive inculde='字符串或正则表达式' exclude='字符串或正则表达式' max='最大可缓存数'>
动态组件/ 路由组件
</keep-alive>
其中:
include:字符串或正则表达式。只有名称匹配的组件(根据组件名)会被缓存。exclude:字符串或正则表达式。任何名称匹配的组件都不会被缓存。max:数字。最多可以缓存多少组件实例。
注意:
<keep-alive>是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中:调试工具中不可见。- 当组件在
<keep-alive>内被切换,它的activated和deactivated这两个生命周期钩子函数将会被对应执行。
典型的应用场景有
从列表页路由跳转到详情页,然后再后退回到列表页。由于是两个独立的路由级别的组件,所以这里会涉及到对列表页的销毁和重建,如果对列表页缓存,就可以减少这部分的消耗。