一个简单的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
方法。