包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 相似, 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中。
当组件在 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
例:我们想缓存a组件和b组件,可以在App.vue中写:(注:一定要在a.vue和b.vue中配置name选项)
<keep-alive :include="['a', 'b']">
<routerview />
</keep-alive>
和 <transition>
一起使用 ,注意顺序,transition是在外边。
<transition>
<keep-alive>
<component :is="view"></component>
</keep-alive>
</transition>