Vue3中,侦听来自动态创建子组件$on替换的事件是通过使用emits
选项来实现的。
在Vue3中,动态创建的子组件不再支持使用$on
和$emit
来进行事件的侦听和触发。相反,Vue3引入了emits
选项,用于声明组件可以触发的事件。
emits
选项是一个对象,其中的属性表示组件可以触发的事件名称,属性的值可以是一个字符串或一个函数。如果属性的值是一个字符串,表示该事件没有参数;如果属性的值是一个函数,表示该事件可以传递参数。
下面是一个示例:
// 子组件 Child.vue
<template>
<button @click="handleClick">点击触发事件</button>
</template>
<script>
export default {
emits: ['my-event'], // 声明可以触发的事件
methods: {
handleClick() {
this.$emit('my-event', 'Hello from Child') // 触发事件,并传递参数
}
}
}
</script>
在父组件中,可以使用v-on
指令来侦听子组件触发的事件:
// 父组件 Parent.vue
<template>
<div>
<child @my-event="handleEvent"></child>
</div>
</template>
<script>
export default {
methods: {
handleEvent(message) {
console.log(message) // 输出:Hello from Child
}
}
}
</script>
在上面的示例中,子组件Child
通过emits
选项声明了一个名为my-event
的事件,并在点击按钮时触发该事件,并传递了一个参数。父组件Parent
通过v-on
指令侦听子组件触发的my-event
事件,并在事件处理函数中接收到子组件传递的参数。
推荐的腾讯云相关产品和产品介绍链接地址:
以上是关于Vue3侦听来自动态创建子组件$on替换的事件的完善且全面的答案,希望能对您有所帮助。
领取专属 10元无门槛券
手把手带您无忧上云