1.首先在路由中配置需要缓存组件的标识:(keepAlive: true),尝试过先设置为false,然后在路由守卫里通过判断条件设置为true,但是遇到第一次不生效,第二次才生效的问题
export default [
{
path: '/',
component: () =>
import(
/* webpackChunkName: "mainContainer" */ '@/views/mainContainer/index.vue'
),
children: [
{
path: 'list',
meta: {
keepAlive: true,
},
component: () =>
import(
/* webpackChunkName: "resource" */ '@/views/index.vue'
),
},
],
},
]
2.在App.vue中添加相关代码
<div id="app">
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>