Прослушивание всех событий, генерируемых дочерними компонентами в Vue - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть дочерний компонент, который оборачивает сторонний компонент видео. Как прослушать все события, испускаемые этим дочерним компонентом?

<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. Есть ли способ быть более декларативным?

Например,

 <event-emitter 
   v-on:listen-to-all-events="normalHander"
   v-on:something-unusal-has-happend="aHandlerForThisVariationOfEvent"
 ></event-emitter>
...