keepalive 的 exclude 属性用于指定不参与缓存的组件,支持字符串、正则和数组三种值类型,常配合 router-view 动态控制缓存行为,并需注意组件 name 的显式声明。

KeepAlive 的 exclude 属性用于明确告诉 Vue:哪些组件不参与缓存。它和 include 是互补关系,但更常用在“默认全缓存、个别不缓存”的场景,比如登录页、表单页、实时数据页等需要每次刷新的组件。
exclude 支持的值类型
exclude 可以接收三种形式的值,Vue 会据此匹配组件名(注意:是组件的 name 选项,不是文件名或路由路径):
-
字符串:逗号分隔的组件名,如
"Login,SearchForm" -
正则表达式:用
/^Report/匹配所有以 Report 开头的组件名 -
数组:包含字符串或正则的数组,如
['Login', /Detail$/]
在路由场景中排除组件(最常见用法)
通常配合 <router-view></router-view> 使用,把 KeepAlive 套在动态组件外层:
<router-view v-slot="{ Component }"><keep-alive :exclude="['Login', 'Register']"><component :is="Component"></component></keep-alive></router-view>
这样,只要当前渲染的组件 name 是 Login 或 Register,就不会被缓存,每次进入都会重新创建实例。
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
