provide/inject 是专为多层级跨组件共享静态或低频变更上下文设计的机制,适用于主题配置、国际化、权限上下文等自上而下只读、结构稳定、跨多层场景,需用 ref/reactive 包裹响应式数据并推荐 symbol 键名。

Vue 中的 provide/inject 不是用来替代 props 或 v-model 的,而是专为多层级跨组件共享静态或低频变更上下文设计的机制。它解决的是“祖辈 → 曾孙辈甚至更深”之间重复透传 props 的冗余问题,不是通用通信方案,用对场景才真正省力。
什么时候该用 provide/inject?
核心判断标准:数据是否具有自上而下、只读为主、结构稳定、跨多层但不频繁更新的特点。
- 主题配置(dark/light 模式)、国际化 locale、用户权限上下文
- 表单容器与内部 Field 组件共享校验规则、禁用状态
- UI 组件库中实现列配置透传(如 ElTable column 注入)
- API 实例(如封装好的 axios 实例)、工具函数(格式化、权限检查)
响应式数据必须显式包裹
直接 provide 普通对象或字符串,inject 后修改不会触发视图更新——这是最常见踩坑点。
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
