父组件调用子组件,接收子组件参数
<template>
<Button @click="getSon">触发子组件方法</Button>
<!-- 定义 ref -->
<Son ref="son" @doSth2="sayHello" />
</template>
<script setup>
const son = ref(null);
const getSon = () => {
son.value.doSon("这是父组件调用子组件");
console.log("父组件接收到了子组件参数:" + son.value.sonName);
}
</script>
<template>
</template>
<script setup>
const doSon = (str) => {
console.log("子组件的 doSon 方法执行了:" + str);
}
const sonName = ref("我是子组件参数Name")
defineExpose({ doSth, sonName })
</script>
子组件调用父组件方法,接收父组件参数
<template>
<!-- 使用 @doSon 接收方法 -->
<Son ref="son" @doSon="fatherMethod" />
</template>
<script setup>
import { provide,ref } from 'vue';
const fatherMethod = () => {
console.log("子组件调用了父组件方法");
}
provide('fatherData', "我是父组件传过来的值");
</script>
<template>
</template>
<script setup>
import { inject,ref } from 'vue';
const emit = defineEmits(["doSon"]);
const doSon = () => {
emit('doSon');
}
const fatherData = inject('fatherData')
console.log("子组件接收了父组件传过来的参数:" + testData1);
</script>