组件缓存使用
是vue提供的一个全局组件 vue原生自带 用来缓存组件。
vue组件是有销毁机制的,比如条件渲染,路由跳转时,组件都会经历销毁,再次回到页面时,又会回到重生。这一过程保证了生命周期钩子函数各个过程都会在这一生命周期中执行。
用keep-alive包裹想要缓存的组件实例,组件创建之后,就不会再进行销毁,组件数据和状态得以保存。没有销毁,也就失去了重生,失去了原有的钩子函数,所以keep-alive包裹的组件 都获取了另外的两个时间--如果缓存组件需要重新获取数据。
唤醒 activated 重新唤醒休眠组件实例时 执行
休眠deactivated组件 实例进入休眠状态时执行
但我们不能缓存所有的组件实例,如果是针对 组件容器router-view进行缓存,一般的策略是在路由的元信息meta对象中设置是否缓存的标记,然后根据标记决定是否进行缓存。
在路由.js文件中,meta标识符,也是路由配置里面可以写的,他可以用来判断一些操作
在App.vue文件中
<div id="app">
<keep-alive>
里面是当需要缓存时,显示组件的router-view
<router-view v-if="$route.meta.isAlive" />
</keep-alive>
外面是不需要缓存时
<router-view v-if="!$route.meta.isAlive" />
</div>