vue keep -Alive 页面缓存,小妙招

307 阅读1分钟

一、只限于根据路由缓存页面组件,当然可以延伸到缓存页面小组件。(方法通用,我是改造而来的方法)

在官方API中提供的两个方法,include与exclude方法中,可以根据正则表达式去匹配是否缓存组件。。

keep-alive是Vue.js的一个内置组件。它能够不活动的组件实例保存在内存中,而不是直接将其销毁,它是一个抽象组件,不会被渲染到真实DOM中,也不会出现在父组件链中。它提供了include(缓存)与exclude(不缓存)两个属性,允许组件有条件地进行缓存。

我是这样做的 :

第一步:在入口组件App中,监听路由参数的变化,在data中定义keepAliveComponents 数组存储要缓存的组件名字,根据meta字段cache是否缓存,再加到数组里。

当然要在路由列表的元信息中,定义一个字段是否缓存这个组件(看图)

看最后的结果吧~~

再看页面刷新之后的结果,缓存没有了

看来刷新就会清除缓存组件

大家还有什么改进建议没?可以评论区,一起探讨,嘿嘿