什么是keepalive?
在平常开发中,有部分组件没有必要多次初始化,这时,我们需要将组件进行持久化,使组件的状态维持不变,在下一次展示时,也不会进行重新初始化组件。
在桌面端应用中加入keep-alive 可以在切换页面的时候大大的减少不必要的渲染,减少cpu的负担
<keep-alive exclude="login">
<router-view v-if="!isOfflineFlag" class="global-content"/>
</keep-alive>
有这样一种场景
用户第一次打开应用 是没有问题的 ,但是用户切换账号,再次登录后 之前加载过的组件状态还保留在上个账号的状态 ,再加上应用可能还有权限的原因有展示的组件,数据也不一样 所以需要在登录页面的时候清除掉keep-alive 的缓存
清除全部缓存
if (this.$vnode) {
this.$vnode.parent.componentInstance.cache = {}
}