前言
在vue2.0里面provide与inject是以选项式(配置)API的方式在组件中进行使用的,解决的是跨组件(祖孙)间通信的一种方式
也就是父子组件间的通信,父组件上通过自定义属性,而子组件间通过...props这种方式接收,如果想要一层一层的传递,这种方式就会比较麻烦,不灵活
provide与inject就是解决:怎么从祖组件的数据,传递到孙组件,实现跨级组件传递数据的
在vue3.0里面,同样提供了...provide与inject,使用起来更简单方便,单纯的从概念上去看,是比较抽象,难以理解的
还是要从具体的实例出发
01
provide()函数
定义:提供一个值,可以被后代组件注入
实现: 父组件有一个...,它也可以是一个函数,用来返回某些创建起来比较复杂的值,如果默认值本身就是一个函数
那么必须将false作为第三个参数传入,表明这个函数就是默认值,而不是一个工厂函数
与注册生命周期钩子的API类似,inject...,接收父组件提供传递过来的值
总结
provide()与inject()的使用比较简单,就是解决跨组件间通信的一种方式,对于层级嵌套比较深的组件,若子孙组件想要使用父组件中的数据
那么就可以使用这种方式进行传递数据的