例如:在首页点击列表项跳转到详情页后,点击返回,回到首页,发现首页会重新挂载(执行 mounted ),意味着首页以前的状态将不复存在。而业务需求希望回到首页时,首页依然是跳转之前的状态(上个页面不销毁),这就需要使用 vue 提供的“保活机制”来对首页进行保活处理。 一旦被保活处理,重新显示该页面将不会执行mounted生命周期方法 动态设置保活页面: 1、在路由配置文件index.js中,为需要保活的页面添加自定义的meta属性
// index.js
{
path:'index',
component:()=>import('../views/index.vue'),
meta:{
keepalive:true
}
2、为router-view绑定v-if指令来动态控制组件的渲染
<keep-alive>
<router-view v-if="$route.meta.keepalive"/>
</keep-alive>
<router-view v-if="!$route.meta.keepalive"/>
3、vue为keepalive机制设计了两个额外的声明周期方法: activated(){}:当从其他路由回到当前页时执行 deactivated(){}:当从当前页跳走,去到其他路由时执行