简而言之:我构建了一个轻量级的 TypeScript 库,用于让微前端之间轻松通信。
无需发布/订阅,也不需要事件总线,只需简单的请求/响应模式即可完成交互
❗问题所在
如果你曾经使用过微前端架构,一定体会过让各个子应用互相通信的痛苦。最终通常会演变成以下情况:
- 复杂难调试的事件系统
- 各种竞态条件和时序问题
- 处理敏感数据时的安全隐患
🛠 它是如何工作的
Waiter 允许你在应用的一部分创建“控制器”,然后从其他任意位置发起请求。可以把它理解为前端内部的 API:
// 在用户管理微前端中
const waiter = new Waiter();
waiter.createController('getUserData', (userId) => {
return userStore.getUser(userId);
});
// 在仪表盘微前端中
const waiter = new Waiter();
const user = await waiter.request('getUserData', 123);
就是这样。无需设置,无需配置,即可使用。
🔑 主要特性
- 零依赖 —— Gzip 后仅几 KB
- 原生支持 TypeScript —— 开箱即用的完整类型安全
- 基于 Promise —— 完整支持 async/await 异步调用
- 框架无关 —— 可与 React、Vue、Angular 或原生 JS