跨微前端的路由和通信 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

跨微前端的路由和通信

路由选项取决于组合方法。可以通过减少前端组件之间的耦合来优化通信。

路由

使用垂直分割的客户端组合的应用程序可以使用服务器端路由(多页应用程序)或客户端路由(单页应用程序)。如果他们使用混合拆分进行界面构成,则必须使用客户端路由来支持页面上更深层次的微前端路由层次结构。

使用边缘组合和服务器端组合的应用程序更适合服务器端路由,或者使用边缘计算进行路由,例如带有 Amazon 的 Lambda @Edge。 CloudFront

微前端之间的通信

对于微前端架构,我们建议减少前端组件之间的耦合。减少耦合的一种方法是从同步函数调用转向异步消息传递。

浏览器运行时和用户交互本质上是异步的。生产者和消费者之间可以通过消息交换事件。这些事件为微前端之间的通信提供了一个定义明确的接口。

如果您按照 DDD 实践来识别微前端的边界上下文,那么下一步就是确定必须跨界通信的事件。

事件的消息传递机制可以是平台团队提供的原生 DOM JavaScript 事件 (CustomEvents)、事件发射器或响应式流库。微前端发布事件并订阅与其边界上下文相关的事件。使用这种方法,发布者和订阅者无需相互了解。合约就是事件的定义。有关此内容的直观表示,请参阅 “带有事件架构的边界上下文” 图的 “与事件沟通” 部分。