我有许多包含其他组件的组件,深度组件需要向更高的组件发送事件。该组件将$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)" />
读起来更好。