美文网首页
手动实现简单的Bus总线

手动实现简单的Bus总线

作者: key君 | 来源:发表于2019-10-06 14:41 被阅读0次

on事件里把传入的事件名作为key 回调函数作为value放在数组中 在emit里面遍历数组 取出函数 执行函数

main.js
import Bus from './utils/bus';
Vue.prototype.$bus = new Bus();
bus.js
export default class Bus {
  constructor() {
    // {
    //   eventName1:[fn1,fn2],
    //   eventName2:[fn3,fn4],
    // }
    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));
    }
  }
}
使用
//派发
this.$bus.$emit('event-bus','测试eventBus')
//接收
this.$bus.$on("event-bus", msg => {
      this.msg = "接收event-bus消息:" + msg;
    });

相关文章

  • 手动实现简单的Bus总线

    在emit里面遍历数组 取出函数 执行函数 main.js bus.js 使用

  • 高级框架第十三天Config:分布式配置中心

    第一部分 Bus:消息总线 主要内容 1.消息总线简介 2.基于消息总线实现全局热刷新 一.消息总线简介 1.什么...

  • Spring Cloud系列--Spring Cloud Bus

    之前介绍了如何简单的搭建Spring Cloud Bus 组件,今天让我们来自定义一个消息总线的传播。本文实现是参...

  • 手写RxBus

    参考:用RxJava实现事件总线(Event Bus)http://www.jianshu.com/p/ca090...

  • RxBus基本使用

    用RxJava实现事件总线(Event Bus) 对于RxBus的使用,就和普通的RxJava订阅事件很相似了。先...

  • vue-vuex

    事件总线 Vue.prototype.bus = new Vue()console.log(this.bus)子组...

  • RxBus学习

    学习资料 YoKey大神:用RxJava实现事件总线(Event Bus) 谢三弟大神:从 RxBus 这辆兰博基...

  • Chapter Nine《SpringCloud微服务实战》

    消息总线: Spring Cloud Bus 1.什么是BUS? spring cloud是按照spring的配置...

  • Spring Cloud Bus:消息总线

    Spring Cloud Bus:消息总线 Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构...

  • Bus消息总线

    Bus消息总线 原文在github,有些相对路径连接不能跳转,如想看原文项目地址 spingboot2.1.3加s...

网友评论

      本文标题:手动实现简单的Bus总线

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