聊聊 Vue 中 provide/inject 的应用
程序员文章站
2022-11-07 21:17:15
众所周知,在组件式开发中,最大的痛点就在于组件之间的通信。在 Vue 中,Vue 提供了各种各样的组件通信方式,从基础的 props/$emit 到用于兄弟组件通信的 EventBus,再到用于全局数据管理的 Vuex。 在这么多的组件通信方式中,provide/inject 显得十分阿卡林(毫无存 ......
众所周知,在组件式开发中,最大的痛点就在于组件之间的通信。在 vue 中,vue 提供了各种各样的组件通信方式,从基础的 props/$emit 到用于兄弟组件通信的 eventbus,再到用于全局数据管理的 vuex。
在这么多的组件通信方式中,provide/inject 显得十分阿卡林(毫无存在感)。但是,其实 provide/inject 也有它们的用武之地。今天,我们就来聊聊 vue 中 provide/inject 的应用。
何为 provide/inject
provide/inject 是 vue 在 2.2.0 版本新增的 api,官网介绍如下:
这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。如果你熟悉 react,这与 react 的上下文特性很相似。
官网的解释很让人疑惑,那我翻译下这几句话:
provide 可以在祖先组件中指定我们想要提供给后代组件的数据或方法,而在任何后代组件中,我们都可以使用 inject 来接收 provide 提供的数据或方法。
举个官网的