【小程序】小程序的eventBus

小程序组件跨组件通讯没有比较好的方案,小程序原生的方法也不支持eventBus,只能自己开发一个

源码网上看了些,加gpt修改一下

javascript 复制代码
var EventBus = function () {
  function EventBus() {
    this.events = {};
  }

  EventBus.prototype.on = function (eventName, callback) {
    if (!this.events[eventName]) {
      this.events[eventName] = [];
    }
    this.events[eventName].push(callback);
  };

  EventBus.prototype.emit = function (eventName) {
    var _this = this;
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
      args[_i - 1] = arguments[_i];
    }
    if (this.events[eventName]) {
      this.events[eventName].forEach(function (callback) {
        return callback.apply(_this, args);
      });
    }
  };

  EventBus.prototype.off = function (eventName, callback) {
    if (!callback) {
      this.events[eventName] = [];
    } else {
      this.events[eventName] = this.events[eventName].filter(function (cb) {
        return cb !== callback;
      });
    }
  };

  return EventBus;
}();

module.exports = new EventBus();

调用

javascript 复制代码
	import eventBus from ../utils/eventBus.js

	//监听
	eventBus.on('bus',(res)=>{
		console.log(res)
	})
	//发送
	eventBus.emit('bus','传参')
	//取消
	eventBus.off('bus')
相关推荐
px不是xp3 小时前
微信小程序组件化开发最佳实践
微信小程序·小程序·notepad++
编程迪5 小时前
基于SpringBoot开发的预约停车系统共享停车位小程序app
小程序·停车场小程序·预约停车·错峰出行·共享车位app
云起SAAS5 小时前
早晚安打卡签到小程序完整源码 | 三级分销+红包广告+PC后台 | 商业级系统
小程序
职豚求职小程序5 小时前
浙商银行笔试题库小程序练习2026新版题库
小程序
Kingexpand_com5 小时前
旅游小程序选型指南:模板与定制开发全解析
小程序·旅游·软件开发·小程序开发·旅游小程序·旅行·定制开发
克里斯蒂亚诺更新5 小时前
微信小程序引入vant weapp,button宽度100%
微信小程序·小程序
一品威客网6 小时前
租车小程序 APP 版本开发 全端适配高效用车体验一站式搭建
小程序
MaCa .BaKa20 小时前
44-校园二手交易系统(小程序)
java·spring boot·mysql·小程序·maven·intellij-idea·mybatis
普通人620 小时前
微信小程序又双叒叕改获取头像昵称的接口了
微信小程序·小程序·notepad++
于先生吖1 天前
高并发稳定运营,JAVA 动漫短剧小程序 + H5 源码
java·开发语言·小程序