在vue中 子组件怎么调用父组件方法
时间: 2024-02-28 17:50:09 浏览: 77
在Vue中,子组件可以通过事件来调用父组件的方法。以下是一种常见的方法:
1. 在父组件中定义一个方法。
2. 在子组件中触发一个自定义事件,并传递需要的参数。
3. 在父组件中监听子组件触发的事件,并在事件处理函数中调用相应的方法。
下面是一个示例:
父组件:
```vue
<template>
<div>
<button @click="callParentMethod">调用父组件方法</button>
<child-component @custom-event="handleCustomEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
methods: {
parentMethod() {
console.log('父组件方法被调用');
},
callParentMethod() {
// 子组件调用父组件方法
this.$refs.childComponent.triggerParentMethod();
},
handleCustomEvent() {
console.log('子组件触发了自定义事件');
}
}
}
</script>
```
子组件:
```vue
<template>
<div>
<button @click="triggerCustomEvent">触发自定义事件</button>
</div>
</template>
<script>
export default {
methods: {
triggerCustomEvent() {
// 子组件触发自定义事件,并传递参数
this.$emit('custom-event', '自定义参数');
}
}
}
</script>
```
在上面的示例中,父组件中定义了一个`parentMethod`方法,子组件中定义了一个`triggerCustomEvent`方法。当子组件中的按钮被点击时,会触发自定义事件`custom-event`,并传递一个参数。父组件中监听到子组件触发的事件后,会调用`handleCustomEvent`方法。而在父组件中的按钮被点击时,会调用`callParentMethod`方法,该方法通过`$refs`获取到子组件的实例,并调用子组件的`triggerParentMethod`方法。
这样,子组件就可以通过触发自定义事件来调用父组件的方法了。
阅读全文