vuejs中缓存组件状态-keepAlive

前言

vuejs中,我们经常需要缓存一些组件的状态,比如用户登录后,切换到其他页面,再切换回来,需要保留之前的登录状态,而不是重新登录。

或者在切换不同组件的时候,需要保留之前的组件状态,而不是重新加载。如果你什么都不设置

你会发现,之前已更改的状态都被重置了。

在切换时创建新的组件实例通常是有意义的,但在有些情况下,我们的确想要组件能在被"切走"的时候保留它们的状态。要解决这个问题,我们可以用 <KeepAlive> 内置组件将这些动态组件包装起来

代码示例

go 复制代码
<!-- 非活跃的组件将会被缓存! -->
<KeepAlive>
  <component :is="activeComponent" />
</KeepAlive>

包含(include)与排除(exclude)

<KeepAlive> 默认会缓存内部的所有组件实例,但我们可以通过 includeexcludeprop 来控制组件的缓存与不缓存的。这两个 prop 的值都可以是一个以英文逗号分隔的字符串、一个正则表达式,或是包含这两种类型的一个数组

go 复制代码
<!-- 以英文逗号分隔的字符串,a,b代表的是组件 -->
<KeepAlive include="a,b">
  <component :is="view" />
</KeepAlive>

<!-- 正则表达式 (需使用 `v-bind`) -->
<KeepAlive :include="/a|b/">
  <component :is="view" />
</KeepAlive>

<!-- 数组 (需使用 `v-bind`),如果有多个,可以用一个数组 -->
<KeepAlive :include="['a', 'b']">
  <component :is="view" />
</KeepAlive>

它会根据组件的 name 选项进行匹配,所以组件如果想要条件性地被 KeepAlive缓存,就必须显式声明一个 name选项

注意事项

使用<script setup> 的单文件组件会自动根据文件名生成对应的 name 选项,无需再手动声明

<>

前后端联调前-一个前端动手写代码前的思考
<>

2023-09-21

<>

如何判断一个女生是不是假正经
<>

2023-09-20

<>

vue3+vite安装element-plus报错解决-使用组件不起作用
<>

2023-09-18

<>

vite构建的本地开发环境请求第三方接口时如何解决跨域问题
<>

2023-09-17

<>

VuePress网站如何使用axios请求第三方接口
<>

2023-09-16

<>

前后端开发接口联调对接参数
<>

2023-09-13

<>

Vue中实现全景房看图3D
<>

2023-09-11

相关推荐
崔庆才丨静觅12 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
陌上丨13 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
passerby606113 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了13 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅13 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅13 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅14 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment14 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅14 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊14 小时前
jwt介绍
前端