前言
在vue2.0里面provide与inject是以选项式(配置)API的方式在组件中进行使用的,解决的是跨组件(祖孙)间通信的一种方式
也就是父子组件间的通信,父组件上通过自定义属性,而子组件间通过...props这种方式接收,如果想要一层一层的传递,这种方式就会比较麻烦,不灵活
provide与inject就是解决:怎么从祖组件的数据,传递到孙组件,实现跨级组件传递数据的
在vue3.0里面,同样提供了...provide与inject,使用起来更简单方便,单纯的从概念上去看,是比较抽象,难以理解的
还是要从具体的实例出发
01
provide()函数
定义:提供一个值,可以被后代组件注入
实现: 父组件有一个...provide,选项来提供数据,后代组件中有一个inject选项来开始使用父组件传递过来的数据
provide(第一个参数,第二个参数)接收两个参数,第一个参数是要注入的key,它可以是一个字符串或一个...symbol,第二个参数是要注入的值(具体要传递给子孙组件的数据)
provide是vue官方提供的componsition API
具体示例代码如下所示
import {reactive,provide