keep-alive
是原生自带,用于缓存组件,项目中一般列表组件数据需要缓存起来。如果组件需要缓存,用keep-alive
包裹。
<div id="app">
<keep-alive>
<!-- 里面是当需要缓存时 显示组件的 router-view-->
<router-view v-if="$route.meta.isAlive" />
</keep-alive>
<!-- 外面是不需要缓存时 -->
<router-view v-if="!$route.meta.isAlive" />
</div>
在index.js中给routes数组每个路由添加判断操作符meta,例如
const routes = [
{
path:"/",
name:"Home",
component:"Home",
meta :{
// isAlive:isAlive为自定义的,true 代表缓存组件,false为不缓存
isAlive:false
}
}
]
组件缓存就没有了销毁,也就失去了重生的环节, 我们失去了 原有的钩子函数, 所以keep-alive包裹的组件 都获取了另外两个事件 --如果缓存组件需要重新获取数据
唤醒 activated重新唤醒休眠组件实例时 执行
休眠 deactivated组件实例进入休眠状态时执行
可以在这两个声明周期内重新发送请求
网友评论