xxf_react 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,11 +89,15 @@ declare class EventBus {
89
89
  */
90
90
  private ensureInitialized;
91
91
  /**
92
- * 分发事件到对应的处理器
92
+ * 分发事件到对应的处理器(用于跨 Tab 消息)
93
93
  */
94
94
  private dispatch;
95
95
  /**
96
- * 发送事件
96
+ * 调用事件处理器
97
+ */
98
+ private invokeHandlers;
99
+ /**
100
+ * 发送事件(同时触发本地和跨 Tab 监听)
97
101
  * @param event 事件实例
98
102
  *
99
103
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/event-bus/EventBus.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;AAEpC;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAErD;;;;;;;;;;;;;GAaG;AACH,8BAAsB,SAAS;IAC3B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM;IAUxB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxB;AAED;;;;;;;;;;;;;;GAcG;AACH,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAE/C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAQ;IAE3B,OAAO;IAIP;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,SAAc,GAAG,QAAQ;IAOhD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE,CAAC,CAAC,SAAS,SAAS,EAClB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,MAAM,IAAI;IAoBb;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,EACnB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,IAAI;IAYP;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,MAAM,IAAI;IAQb;;;OAGG;IACH,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAMxE;;;OAGG;IACH,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM;IAKxE;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAM5D;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CASjC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAyB,CAAA"}
1
+ {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/event-bus/EventBus.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;AAEpC;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAErD;;;;;;;;;;;;;GAaG;AACH,8BAAsB,SAAS;IAC3B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM;IAUxB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxB;AAED;;;;;;;;;;;;;;GAcG;AACH,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAE/C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAQ;IAE3B,OAAO;IAIP;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,SAAc,GAAG,QAAQ;IAOhD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAYhB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE,CAAC,CAAC,SAAS,SAAS,EAClB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,MAAM,IAAI;IAoBb;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,EACnB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,IAAI;IAYP;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,MAAM,IAAI;IAQb;;;OAGG;IACH,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAMxE;;;OAGG;IACH,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM;IAKxE;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAM5D;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CASjC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAyB,CAAA"}
@@ -101,7 +101,7 @@ class EventBus {
101
101
  this.isInitialized = true;
102
102
  }
103
103
  /**
104
- * 分发事件到对应的处理器
104
+ * 分发事件到对应的处理器(用于跨 Tab 消息)
105
105
  */
106
106
  dispatch(type, data) {
107
107
  const EventClass = this.eventRegistry.get(type);
@@ -112,6 +112,15 @@ class EventBus {
112
112
  return;
113
113
  // 还原事件对象
114
114
  const event = Object.assign(Object.create(EventClass.prototype), data);
115
+ this.invokeHandlers(type, event);
116
+ }
117
+ /**
118
+ * 调用事件处理器
119
+ */
120
+ invokeHandlers(type, event) {
121
+ const handlers = this.handlers.get(type);
122
+ if (!handlers || handlers.size === 0)
123
+ return;
115
124
  handlers.forEach(handler => {
116
125
  try {
117
126
  handler(event);
@@ -122,7 +131,7 @@ class EventBus {
122
131
  });
123
132
  }
124
133
  /**
125
- * 发送事件
134
+ * 发送事件(同时触发本地和跨 Tab 监听)
126
135
  * @param event 事件实例
127
136
  *
128
137
  * @example
@@ -132,12 +141,14 @@ class EventBus {
132
141
  */
133
142
  emit(event) {
134
143
  this.ensureInitialized();
144
+ const EventClass = event.constructor;
145
+ const type = EventClass.getType();
146
+ // 1. 触发本地 handlers(当前 Tab)
147
+ this.invokeHandlers(type, event);
148
+ // 2. 发送到 BroadcastChannel(其他 Tab)
135
149
  if (!this.channel) {
136
- console.warn('[EventBus] Channel not available (SSR environment)');
137
150
  return Promise.resolve();
138
151
  }
139
- const EventClass = event.constructor;
140
- const type = EventClass.getType();
141
152
  // 序列化事件数据(排除原型方法)
142
153
  const data = Object.keys(event).reduce((acc, key) => {
143
154
  acc[key] = event[key];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xxf_react",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",