vue 使用emit调用多个父组件事件
时间: 2024-05-02 09:18:35 浏览: 45
在 Vue 中,可以使用`$emit`方法触发父组件的事件。如果需要调用多个父组件的事件,可以在组件中定义多个方法,分别调用不同的父组件事件。
例如,我们有一个子组件`ChildComponent`,需要在点击按钮时同时触发两个父组件事件`parentEvent1`和`parentEvent2`:
```vue
<template>
<div>
<button @click="handleClick">点击</button>
</div>
</template>
<script>
export default {
methods: {
handleClick() {
// 触发父组件事件1
this.$emit('parentEvent1', '参数1');
// 触发父组件事件2
this.$emit('parentEvent2', '参数2');
}
}
}
</script>
```
在父组件中,可以通过`v-on`指令监听子组件的事件,并调用对应的方法:
```vue
<template>
<div>
<ChildComponent @parentEvent1="handleEvent1" @parentEvent2="handleEvent2"></ChildComponent>
</div>
</template>
<script>
export default {
methods: {
handleEvent1(arg) {
console.log('父组件1事件触发', arg);
},
handleEvent2(arg) {
console.log('父组件2事件触发', arg);
}
}
}
</script>
```
这样,当子组件的按钮被点击时,两个父组件的事件都会被触发,并分别调用对应的方法。
阅读全文