vue3 祖孙通信
利用provide和inject
provide用于向子组件(或子组件中的子组件,无限嵌套)提供自身的一些数据,或者将自身所有属性全部提供,但是提供的数据均为非响应式数据。
inject用于引入父级组件所提供的数据
1、祖父组件
import {ref, reactive,provide} from "vue";
const grandFatherData = ref('我是祖父组件数据');
const grandFatherFun = ()=>{
console.log("我是祖父组件方法")
}
provide('grandFatherData1',grandFatherData.value ); //将数据和方法导出
provide('grandFatherFun1',grandFatherFun );
2、孙子组件
import {ref, reactive,inject} from "vue";
const fun = inject('grandFatherFun') // 接受
const data = inject('grandFatherData');
const getGrandFatherData = ()=>{
fun(); //调用方法
console.log(data); //调用数据
}

浙公网安备 33010602011771号