UNPKG

chooks

Version:

基于 [`@vue/composition-api`](https://github.com/vuejs/composition-api) 的vue hooks函数

42 lines (35 loc) 1.09 kB
const handlers = {} export function useEmitter() { const on = function (eventType, handler) { if (!handlers[eventType]) handlers[eventType] = [] handlers[eventType].push(handler) } const once = function (eventType, handler) { handler.once = true on(eventType, handler) } const off = function (eventType, handler) { if(!handlers[eventType]) return handlers[eventType].forEach((item, index) => { if (item === handler) handlers[eventType].splice(index, 1) }) } const emit = function (eventType, data) { if(!handlers[eventType]) return handlers[eventType].forEach(handler => { handler(data) if (handler.once === true) off(eventType, handler) }) } const isSubed = function(eventType, handler){ if(!handlers[eventType]) return false return handlers[eventType].indexOf(handler) > -1 } return { on, once, emit, off, isSubed } }