备注A:对于某些人来说,这听起来可能是重复的,但是到目前为止,我发现的所有其他问题要么是指Vue 2,要么是没有参数的事件。如果我错了,请纠正我。
注释B:这个问题可能看起来像一个特性请求,但它不是。我刚刚开始使用Vue,我不知道如何正确地解决这个问题。
My component被发现从App.vue到的两层以下。它运行以下代码:
this.$emit('my-event', parameter);
App.vue (两个级别上)用以下代码捕获事件:
@my-event="myFunction"
但是为了使事件到达App.vue,它首先必须通过它自己上面的组件,如下所示:
子组件>父组件> App.vue
父组件可以捕获事件并将其传递给App.vue,如下所示:
@my-event="$emit('my-event')"
,但随后忽略了参数.。
解决该问题的另一种方法是(在父组件中):
@my-event="myEvent"
myEvent(parameter) {
this.$emit('my-event', parameter);
}
但我正在寻找一种更简单、更直观的方式来放弃这一事件。可能是这样的(在父组件中):
@my-event="$emit('my-event', parameter)"
这在Vue 3中有可能吗?或者类似的东西?什么是最好的方式来发出一个事件的参数多个级别?任何帮助都将不胜感激。
发布于 2022-01-18 07:26:40
Vue提供了一个名为$event
的特殊变量,您可以在模板中使用它来获取事件参数。因此,在您的示例中,您可以将事件处理程序编写为
@my-event="$emit('my-event',$event)
https://stackoverflow.com/questions/70756371
复制相似问题