我有一个子组件,包装了一个第三方视频组件。如何侦听从该子组件发出的所有事件?
<event-emitter
v-on:play="handleEvent"
v-on:stop="handleEvent"
v-on:ad-pause="handleEvent"
v-on:ad-play="handleEvent"
v-on:video-quartile-25="handleEvent"
v-on:video-quartile-50="handleEvent"
... this could many more lines ...
></event-emitter>
事件可能如下所示的{ type: "play", time: 28, ... }
目前我有这个
<event-emitter v-on:emitter-events="handleEvent"></event-emitter>
在<event-emitter>
中,我将所有发出的事件合并为具有类型属性的单个事件。现在有一个缺点,因为handleEvent函数很可能会变成长的switch语句。有没有更具声明性的方法?
E.g
<event-emitter
v-on:listen-to-all-events="normalHander"
v-on:something-unusal-has-happend="aHandlerForThisVariationOfEvent"
></event-emitter>
发布于 2020-01-30 15:04:42
最后,我只是在父组件中编写了所有代码,其中<parent>
充当rest应用程序的控制器。不像我希望的那样是声明性的--当然也没有回答这个问题。我认为这不可能如所描述的那样。
不过,@Gander提供的那个事件总线链接仍然很有用。
<parent> <-- I handle the EmitterEvents
<somthing-else />
<event-emitter v-bind:emitter-events="handleEmitterEvents" />
<another-component />
</parent>
https://stackoverflow.com/questions/58743099
复制相似问题