要求:A组件中包含B组件,B组件中包含C组件,C组件中包含D组件,D组件要向A组件传值。
1、在A组件中添加如下代码:
<script lang="ts">
import {
defineComponent,
provide,
} from "vue";
export default defineComponent({
name: "index",
setup() {
// 组件D向组件A传值,A组件中使用该方法接收
const onChange = (value: boolean) => {
console.log("D组件给A组件传的值是", value)
};
provide("onChangeArgee", onChange);
},
});
</script>
2、在D组件中写入如下代码:
<script lang="ts">
import {
defineComponent,
inject,
} from "vue";
export default defineComponent({
name: "D",
setup() {
const onChange = inject("onChangeArgee", Function, true);
// 在 组件D 中对数据进行操作的方法
const onAgree = (value: boolean) => {
// 传值
onChange(value);
};
},
});
</script>