<div>
<keep-alive>
<router-view v-if="$route.meta.keepAlive" />
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"/>
</div>
route/index.js 路由里添加meta元数据
{
path: '/about',
name: 'About',
component: () => import('../views/About.vue'),
// 元数据meta, 用于自定义属性
meta: {
// 属性名随意
keepAlive: true, //代表 保持活动
},
<!-- 占位符 -->
<!-- 默认情况下, 路由会自动节省内存: 只保存当前显示的组件, 切换掉的组件 会自动销毁 -->
<!-- keep-alive: 保持-存活 简称 保活 -->
<keep-alive>
<!-- 判断: 如果当前路由是保持活动, 则显示这个router-view -->
<router-view v-if="$route.meta.keepAlive" />
<!-- 没有在meta中声明 keepAlive属性, 则值是 undefined -->
<!-- if判断 会认为是false -->
</keep-alive>
<!-- 如果不存在 keepAlive属性, 则显示此处, 不需要保活 -->
<router-view v-if="!$route.meta.keepAlive" />
在mintui保活状态下 鼠标滚动 bug 一直加载数据
activated() {
console.log("/home/index activated..");
this.isLoading = false; //启用曲线滚动
},
deactivated() {
console.log("/home/indexdeactivated......");
this.isLoading = true; //禁用无限滚动
},
keep-alive 详细地址 :
多组件保活 必须是组件注册的名 例如: News.vue Mes.vue
<keep-alive :include="[ ' News ',' Mesage ' ]"> </keep-alive>