Vue中provideinject如何实现跨组件数据注入?

更新于
2026-09-28 10:07:41
0阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1547个文字,预计阅读时间需要7分钟。

Vue中provide/inject如何实现跨组件数据注入?

1. Vue父子组件通信用途:使用prop和$emit的组合。 - 如果是父子组件:使用父组件来转发数据和事件。 - 如果是爷孙组件:可以使用Vuex来管理状态。emm... 好的,我没有其他什么了。

1.前言

vue的父子组件通信用什么?

:prop和$emit的组合。

如果是爷孙组件呢?

:那么就要用父组件来转发数据和事件了。

如果是太爷爷和孙子组件呢?

:当然是vuex啦

emmm 好的,没我啥事了,我这就走。

不行,我还能再挣扎一会儿!肯定有一部分兄弟做的项目比较小,组件通信的情况不是很多,懒得引入vuex,那么provide/inject就是爷孙(不限于爷孙/父子,中间隔了多少级都可以)通信问题的最好解决方案啦!

2.官方文档抄过来的介绍

这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。

provide 选项应该是

  • 一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。在该对象中你可以使用 ES2015 Symbols 作为 key,但是只在原生支持 Symbol 和 Reflect.ownKeys 的环境下可工作。
阅读全文

本文共计1547个文字,预计阅读时间需要7分钟。

Vue中provide/inject如何实现跨组件数据注入?

1. Vue父子组件通信用途:使用prop和$emit的组合。 - 如果是父子组件:使用父组件来转发数据和事件。 - 如果是爷孙组件:可以使用Vuex来管理状态。emm... 好的,我没有其他什么了。

1.前言

vue的父子组件通信用什么?

:prop和$emit的组合。

如果是爷孙组件呢?

:那么就要用父组件来转发数据和事件了。

如果是太爷爷和孙子组件呢?

:当然是vuex啦

emmm 好的,没我啥事了,我这就走。

不行,我还能再挣扎一会儿!肯定有一部分兄弟做的项目比较小,组件通信的情况不是很多,懒得引入vuex,那么provide/inject就是爷孙(不限于爷孙/父子,中间隔了多少级都可以)通信问题的最好解决方案啦!

2.官方文档抄过来的介绍

这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。

provide 选项应该是

  • 一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。在该对象中你可以使用 ES2015 Symbols 作为 key,但是只在原生支持 Symbol 和 Reflect.ownKeys 的环境下可工作。
阅读全文