provide 和 inject 能够实现祖组件和其任意的后代组件之间通信:
一、provide 提供数据
我们在祖组件中使用provide 将数据提供出去。
使用provide 之前需要先进行引入:
import { provide } from "vue";
语法格式如下:
provide("数据名", 数据)
例如:我们将祖组件中的person 使用provide提供出去
setup() {
let person = reactive({
name: "张三",
age:18
})
provide("person", person); // 将perosn 提供出去
return {
person
}
}
二、inject 使用数据
我们在后代组件中使用inject 来使用数据。
使用inject之前需要在该组件中对其进行引入:
import { inject } from "vue";
使用语法:
let xxx = inject("数据名") ;
我们在后代组件中接受上面祖组件提供的person 数据
setup() {
let person = inject("person");
return {
person
}
}