keep-alive 链接到标题
通过Map或Object缓存组件vnode实例,渲染时直接从缓存中取
缓存组件实例:避免重复销毁和创建,保留组件状态 提升性能:适用于需要频繁切换但状态需保留的组件(如Tab页、表单填写页)
1.include 匹配组件名称(name选项),仅缓存匹配的组件 ,支持字符串、正则、数组
2.exclude
排除指定组件,优先级高于include
3.max 最大缓存实例数,超出时按LRU(最近最少使用)策略淘汰旧实例
LUR原理:有限淘汰最久未访问的实例
<Component : is="组件名"> </Component> 用来控制显示哪个组件的
进阶用法 链接到标题
**“哪些路由页面需要缓存、哪些不需要”**的精细化控制
通过 router-view 的插槽拿到当前路由组件,再结合路由 meta 标记
<router-view v-slot="{ Component }">
<keep-alive>
<component :is="Component" v-if="$route.meta.keepAlive" />
</keep-alive>
<component :is="Component" v-if="!$route.meta.keepAlive" />
</router-view>
你可以在router/index.js里面配置
{ path: '/home', component: Home, meta: { keepAlive: true } }
加 v-slot="{ Component }" → 能 “主动” 拿到组件实例