兄弟组件传参_bus封装

vue3 Bus兄弟组件传参

type BusClass = {
  emit: (name: string) => void
  on: (name: string, callBack: Function) => void
}

type ParamsKey = string | number | symbol

type List = {
  [key: ParamsKey]: Array<Function>
}

class Bus implements BusClass {
  #list: List
  constructor() {
    this.#list = {}
  }

  emit(name: string, ...args: Array<any>) {
    const eventName: Array<Function> = this.#list[name]
    eventName.forEach(fn => {
      fn.apply(this, args)
    })
  }
  on(name: string, callBack: Function) {
    const fn = this.#list[name] || []
    fn.push(callBack)
    this.#list[name] = fn
  }
}

export default new Bus()

Mitt库

https://www.bilibili.com/read/cv16107098/

posted @   前端之旅  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示