vue3 keepalive exclude
时间: 2025-01-14 17:12:42 浏览: 59
### Vue3 中通过 `exclude` 属性排除组件不让 KeepAlive 缓存
在 Vue3 的 `<KeepAlive>` 组件中,可以通过设置 `exclude` 属性来指定哪些组件不应被缓存。此属性接受逗号分隔的字符串、正则表达式或数组形式的值[^3]。
当使用逗号分隔的字符串时,每个名称代表一个不应该被缓存的组件名:
```html
<KeepAlive exclude="ComponentA, ComponentB">
<component :is="currentComponent"></component>
</KeepAlive>
```
对于更复杂的匹配需求,可以采用正则表达式的模式来进行过滤:
```html
<script setup>
import { ref } from 'vue'
const currentComponent = ref('DynamicComponent')
</script>
<template>
<!-- 使用正则表达式排除特定命名规则的组件 -->
<KeepAlive :exclude="/^(Comp|Widget)/">
<component :is="currentComponent"></component>
</KeepAlive>
</template>
```
另外一种方式是利用数组的形式列举出所有不想让其参与缓存机制中的组件名字:
```html
<KeepAlive :exclude="['Header', 'Footer']">
<router-view></router-view>
</KeepAlive>
```
以上方法均能有效控制哪些动态切换的子组件不会受到父级 `<KeepAlive>` 影响而保持活跃状态之外的状态,即这些被标记为排除在外的组件将在每次访问时重新创建实例而不是从内存中恢复[^1]。
阅读全文
相关推荐


















