缓存组件,切换路由时不销毁
不应该缓存所有组件, 会导致内存过大: 在路由配置中具体配置meta
meta: {
keepAlive: true
},
<keep-alive>
<!-- 如果路由的元数据中的 keepAlive 属性为真, 加载这里 -->
<router-view v-if="$route.meta.keepAlive" />
</keep-alive>
<!-- 如果路由的元数据中, 不存在 keepAlive属性, 则使用这里 -->
<router-view v-if="!$route.meta.keepAlive" />
当组件被keep-alive 缓存之后,则组件不会主动销毁,带有两个额外的生命周期:
activated() { console.log("组件激活时"); },
deactivated() { console.log("组件睡眠时"); },