本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
跨微型前端的路由和通訊
路由選項取決於合成方法。您可以透過減少前端元件之間的耦合來最佳化通訊。
路由
使用用戶端合成搭配垂直分割的應用程式可以使用伺服器端路由 (多頁應用程式) 或用戶端路由 (單頁應用程式)。如果他們使用混合分割進行 UI 合成,則需要用戶端路由,才能支援頁面中微前端的更深層路由階層。
使用邊緣合成和伺服器端合成的應用程式更符合伺服器端路由,或使用邊緣運算進行路由,例如 Lambda@Edge 搭配 Amazon CloudFront。
微型前端之間的通訊
使用微型前端架構時,我們建議減少前端元件之間的耦合。減少耦合的一種方法是將同步函數呼叫移離非同步傳訊。
瀏覽器執行時間和使用者互動本質上是非同步的。事件可以透過訊息在生產者和消費者之間交換。這些事件提供明確定義的界面,用於跨微型前端進行通訊。
如果您遵循 DDD 實務來識別微型前端的邊界內容,下一步是識別必須跨邊界通訊的事件。
事件的訊息機制可以是原生 DOM 事件 (CustomEvents)、JavaScript 事件發射器,或平台團隊提供的被動串流程式庫。微型前端發佈事件並訂閱與其界限內容相關的事件。使用此方法,發佈者和訂閱者不需要彼此了解。合約是事件定義。如需這方面的視覺化呈現,請參閱使用事件架構的邊界內容的與事件通訊一節。 https://eda-visuals.boyney.io/visuals/bounded-context-with-event-architectures