component-a
component-a 暴漏方法,供外部调用
<template>
<div class="com-a" @click="onClose"></div>
</template>
<script setup>
const emits = defineEmits([
'close'
])
function notify() {
console.log('click')
}
function onClose() {
emits('close')
}
defineExpose({
notify // 暴漏的方法
})
</script>
notify
事件,供父组件调用close
事件,供父组件接收component-b
调用 component-a 组件中的方法
<template>
<component-a ref="comRef" @close="onClose"></component-a>
</template>
<script setup>
const comRef = ref();
onMounted(() => {
const instance = comRef.value;
if(typeof instance?.notify === 'function') {
instance.notify()
}
})
function onClose() {
console.log('父组件方法被调用')
}
</script>
notify
方法close
回调方法