美文网首页Vue
vue中eventBus的实现原理

vue中eventBus的实现原理

作者: wave浪儿 | 来源:发表于2020-07-29 15:26 被阅读0次

1.概念
EventBus是消息传递的一种方式,基于一个消息中心,订阅和发布消息的模式,称为发布订阅者模式。

  1. on('name', fn)订阅消息,name:订阅的消息名称, fn: 订阅的消息
  2. emit('name', args)发布消息, name:发布的消息名称 , args:发布的消息

2.实现

class Bus {
  constructor () {
    this.callbacks = {}
  }
  $on(name,fn) {
    this.callbacks[name] = this.callbacks[name] || []
    this.callbacks[name].push(fn)
  }
  $emit(name,args) {
    if(this.callbacks[name]){
       //存在遍历所有callback
       this.callbacks[name].forEach(cb => cb(args))
    }
  }
}

2.使用

const EventBus = new EventBusClass()
EventBus.on('fn1', function(msg) {
    alert(`订阅的消息是:${msg}`);
});
EventBus.emit('fn1', '你好,世界!');

注:只不过在vue中已经替我们实现好了$emit,$on这些方法,所以直接用的时候去 new Vue()就可以了.

相关文章

  • vue中eventBus的实现原理

    1.概念EventBus是消息传递的一种方式,基于一个消息中心,订阅和发布消息的模式,称为发布订阅者模式。 on(...

  • EventBus源码解析

    知识点汇总: 一:EventBus框架概述 二:EventBus的注册实现原理 三:EventBus的事件分发实现...

  • 兄弟组件通讯

    eventBus 定义eventBus eventBus的原理是引入一个新的vue对象,分别调用这个对象的事件发布...

  • Vue事件总线(EventBus)

    阐述一下 VUE中 eventbus 的原理 解答:EventBus是消息传递的一种方式,基于一个消息中心,订阅和...

  • 手写事件总线eventBus

    在vue中,我们有时会用eventBus进行简易组件通信,那么这个eventBus究竟是如何实现的呢?eventB...

  • EventBus

    一、EventBus的原理 EventBus是全局事件总线,底层通过Stream来实现;它可以实现不同页面的跨层访...

  • 一个eventBus

    vue实现一个eventBus eventBus应该有些听过,其实就是一个事件发布订阅的功能。vue提供了实例方法...

  • Vue实现原理

    vue实现原理 1、了解Object的属性defineProperty 2、vue中mvvm的实现: 数据变化更新...

  • vue总结

    vue路由守卫 vue实现双向绑定原理 Vue生命周期: vue跨域方式 vue-router实现原理 vue-r...

  • Vue中EventBus的手动实现

    EventBus概要 EventBus是消息传递的一种方式,基于一个消息中心,订阅和发布消息的模式。这种方式的实现...

网友评论

    本文标题:vue中eventBus的实现原理

    本文链接:https://www.haomeiwen.com/subject/whghrktx.html