vue依赖注入作用域限于提供者及其后代组件树,兄弟、父级或跨树组件不可访问;就近覆盖规则使链上最近provide优先生效;app.provide为全应用级注入,优先级低于组件链provide;响应式对象注入后仍保持响应性。

Vue 组件间的依赖注入作用域,本质上是由组件树的父子继承关系决定的,不是全局共享,也不是任意组件间互通——它只在提供者(provider)及其直接或间接后代组件范围内生效。
作用域边界:仅限前代→后代组件链
provide 注入的数据,只能被其子组件、孙组件、曾孙组件……一直到整条组件树分支中的所有后代组件 inject 到。兄弟组件、父组件、同级组件、跨树组件都无法访问。
- Root → A → B → C:C 可以 inject Root 提供的值,也可以 inject A 或 B 提供的值(取最近的)
- A 和 B 是兄弟:B 无法 inject A 提供的值,即使它们有同一个父组件
- 两个独立挂载的组件树(如不同 app.mount() 实例):彼此完全隔离,不共享 provide 数据
就近覆盖规则:链上最近的 provide 优先生效
如果多个祖先组件都用相同的 key 调用了 provide,后代组件 inject 时拿到的是组件链上离它最近的那个,更远的会被“屏蔽”。
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
