基于keepalive实现页面保活:页面保活简单理解就是跳转回某个页面时,屏幕显示跳转时的位置,而不是页面刷新到页面顶端

689 阅读1分钟

例如:在首页点击列表项跳转到详情页后,点击返回,回到首页,发现首页会重新挂载(执行 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(){}:当从当前页跳走,去到其他路由时执行