简单来说 keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。
举个栗子
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
这里keep-alive包裹的的router-view,首先我们保证我这里设置的被包裹得router-view里得if判断是
true,这样我们就可以将其缓存存储,就是每当我们切换路由时候都会走router-view 而在路由设置
中只 有home设置了meta,并且keepAlive为true 所以我们每次切换路由时候只缓存home,这总缓
存一般是用在在我们在切换路由或者组件切换时候回,我们要保证我们从a组件切换到b组件时候,
且a得value值为123时,在切换到b得时候在切换回a得时候,可以保证a的value值还是123,而不
会重新渲染为空
{
path: '/home',
name: 'home',
components: {
default: () => import(/* webpackChunkName: "base" */ './../views/home/index.vue'),
footer: Footer
},
meta: { // 路由的元信息
keepAlive: true
}
},