问题:在路由跳转的时候,我在A组件的数据变化了希望立马跳到B组件看到页面渲染数据变化了的结果,但是发现B组件的created不会重新执行,原因就是因为写了keep-alive标签但是没有配合v-if使用导致所有页面都缓存了
解决方法:
在项目layout的默认主页index.vue子路由的出口加<keep-alive>标签包着,动态渲染就是在keep-alive标签中加上v-if
<keep-alive v-if="$route.meta.keepAlive">
// 子路由
<router-view />
</keep-alive>
然后在路由文件中添加keepAlive属性,值是Boolean
{
path: '/xxx',
component: () => import('@/views/xxx/xxxx'), // 路由懒加载
meta: {
title: 'xxx',
keepAlive: false // false代表该组件不缓存
}
}