写点什么

发布订阅模式【vue】

作者:达摩
  • 2022 年 5 月 25 日
  • 本文字数:448 字

    阅读完需:约 1 分钟

发布订阅模式【vue】

发布/订阅模式

  • 订阅者

  • 发布者

  • 信号中心

假设存在一个“信号中心”,某个任务执行完成,就向信号中心“发布”一个信号,其他任务可以向信号中心订阅这个信号,从而知道什么时候自己可以开始执行,这就叫做“发布/订阅模式”


通过对 vue 兄弟组件通信(bus)自定义事件简单的模拟实现,让我们对发布/订阅模式有一个更深的认识:

// 事件触发器    class EventEmitter {      constructor () {        this.subs = Object.create(null)      }
// 注册事件 $on(eventType, handler) { this.subs[eventType] = this.subs[eventType] || [] this.subs[eventType].push(handler) }
// 触发事件 $emit(eventType) { this.subs[eventType].forEach(handler => { handler() }) } }
// 调用 let em = new EventEmitter() em.$on('click', ()=> { console.log('damo-1') }) em.$on('click', ()=> { console.log('damo-2') })
em.$emit('click')
复制代码


发布于: 刚刚阅读数: 3
用户头像

达摩

关注

还未添加个人签名 2019.12.04 加入

还未添加个人简介

评论

发布
暂无评论
发布订阅模式【vue】_Vue_达摩_InfoQ写作社区