Helper function to emit events from Vue.js functional components. Can be used in regular components too. CodeSandbox demo
yarn add vue-emit
# or
npm install vue-emit
import emit from 'vue-emit';
export default {
functional: true,
render (h, context) {
return (
<button
onClick={e => emit(context.listeners, 'someEvent', e, 'additional param', 'etc')}
>
{context.children}
</button>
);
},
};
emit(handlers_list, event_name, [optional_payload]);
-
handlers_list
- object of functions. In Vue this isthis.$listeners
andcontext.listeners
(for funtional components). Each value may be a function or an array of functions. In case of arrayemit
will call all provided callbacks. -
event_name
- name of the event to fire. The event may not be defined in the handlers list: in this caseemit
does nothing and do not throws an error (what is very handy) -
optional_payload
- any amount of parameters that will be passed as arguments to the callback.