github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/static_source/admin/src/hooks/web/useEmitt.ts (about)

     1  import mitt from 'mitt'
     2  import { onBeforeUnmount } from 'vue'
     3  
     4  interface Option {
     5    name: string // 事件名称
     6    callback: Fn // 回调
     7  }
     8  
     9  const emitter = mitt()
    10  
    11  //DEPRECATED
    12  export const useEmitt = (option?: Option) => {
    13    if (option) {
    14      emitter.on(option.name, option.callback)
    15  
    16      onBeforeUnmount(() => {
    17        emitter.off(option.name)
    18      })
    19    }
    20  
    21    return {
    22      emitter
    23    }
    24  }