一个简单的vue3子组件调用父组件方法的demo
<template>
<div>
<h2>Parent Component父组件</h2>
<ChildComponent @notify-parent="handleParentMethod" />
</div>
</template>
<script>
import { ref } from 'vue';
import ChildComponent from './Child.vue';
export default {
name: 'Parent',
components: {
ChildComponent
},
setup() {
const handleParentMethod = () => {
console.log('Parent method called from child');
// 这里可以执行父组件的其他逻辑
};
return {
handleParentMethod
};
}
};
</script>
<template>
<div>
<h3>Child Component子组件</h3>
<button @click="notifyParent">Notify Parent</button>
</div>
</template>
<script>
import { defineComponent, emit } from 'vue';
export default defineComponent({
name: 'Child',
setup(_, { emit }) {
const notifyParent = () => {
emit('notify-parent'); // 触发自定义事件
};
return {
notifyParent
};
}
});
</script>
在这个例子中,子组件(Child.vue
)有一个按钮,当点击这个按钮时,它会触发一个名为 notify-parent
的自定义事件。父组件(Parent.vue
)监听了这个事件,并在事件触发时调用 handleParentMethod
方法。