子组件使用this.$emit发送的数据 在父组件中怎么接收
时间: 2023-09-28 18:13:23 浏览: 92
在Vue中,子组件可以通过`this.$emit`方法向父组件发送数据。父组件可以通过在子组件上使用`v-on`指令监听子组件触发的事件,并在相应的方法中处理接收到的数据。
具体来说,假设我们有一个名为`child-component`的子组件,它定义了一个名为`my-event`的事件,并通过`this.$emit`方法触发这个事件,并传递了一个名为`data`的数据:
```javascript
Vue.component('child-component', {
methods: {
handleClick() {
this.$emit('my-event', 'hello world')
}
}
// ...
})
```
在父组件中,我们可以这样使用`v-on`指令来监听子组件触发的`my-event`事件,并在相应的方法中处理接收到的数据:
```html
<template>
<child-component @my-event="handleEvent"></child-component>
</template>
<script>
export default {
methods: {
handleEvent(data) {
console.log(data) // 输出 "hello world"
}
}
}
</script>
```
这里,我们在父组件中使用`v-on`指令监听子组件触发的`my-event`事件,并将其与一个名为`handleEvent`的方法绑定。当子组件触发`my-event`事件并传递了数据时,父组件会自动调用`handleEvent`方法,并将接收到的数据作为参数传递进去。在`handleEvent`方法中,我们就可以处理接收到的数据了。
阅读全文