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}
}