是否可以将事件从Vue 3中的孩子传递给家长

  • 本文关键字:孩子 事件 Vue 是否 events vuejs3
  • 更新时间 :
  • 英文 :


我有许多包含其他组件的组件,深度组件需要向更高的组件发送事件。该组件将$emit('eventName', some, properties)

组件的父级将在模板中,沿着

<child-component @event-name="handleEvent" />
// ...
methods: {
handleEvent ($event, some, properties) {
this.$emit('eventName', some, properties)
}
}

这似乎很乏味。

我希望有一种方法可以让模板通过,甚至不用碰它?

理想情况下,这将开箱即用:

<component-child @event-name="$emit" />

但这并不是因为$emit猜不到事件的名称。

所以,我尝试了以下方法:

<component-child @event-name="$emit('eventName', ...parameters)" />

但每次发出此事件时(就像有4个嵌套组件执行此操作一样(,参数每次都会增加一个,从而添加当前事件的$event。

如何通过将参数放在适当的位置,以优雅的方式将事件$emit传递给父级?

这是我迄今为止最好的建议,很高兴有更好的建议:

<child-component @event-name="(some, properties) => $emit('eventName', some, properties)" />

读起来更好。

最新更新