gaoluyang
3 天以前 92230c9a97dc9ce9df3313d11d26999c04bb6b26
src/plugins/bus.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
const event: { [key: string]: Function } = {}
/** äº‹ä»¶å¥æŸ„ */
export default {
  /** ç»‘定一个事件 */
  $on(eventName: string, eventFun: Function) {
    if (event.hasOwnProperty(eventName)) {
      throw new Error(`存在事件 => ${eventName}`)
    } else {
      event[eventName] = eventFun
    }
  },
  /** è§£ç»‘一个事件 */
  $off(eventName: keyof typeof event) {
    if (event.hasOwnProperty(eventName)) {
      delete event[eventName]
    } else {
      throw new Error(`不存在事件 => ${eventName}`)
    }
  },
  /** è§¦å‘一个事件 */
  $emit<T>(eventName: keyof typeof event, ...args: any):T {
    if (event.hasOwnProperty(eventName)) {
      return event[eventName](...args)
    } else {
      throw new Error(`不存在事件 => ${eventName}`)
    }
  }
}