Vue 3 中 KeepAlive 怎么结合 exclude 属性排除特定组件

浅伟吖_2726

浅伟吖_2726

2026-10-20

295人浏览

原创

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

vue 3 中 keepalive 怎么结合 exclude 属性排除特定组件

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-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习