

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 跨微型前端的路由和通訊
<a name="routing-communication"></a>

路由選項取決於合成方法。您可以透過減少前端元件之間的耦合來最佳化通訊。

## 路由
<a name="routing"></a>

使用用戶端合成搭配垂直分割的應用程式可以使用伺服器端路由 （多頁應用程式） 或用戶端路由 （單頁應用程式）。如果他們使用混合分割進行 UI 合成，則需要用戶端路由，才能支援頁面中微前端的更深層路由階層。

使用邊緣合成和伺服器端合成的應用程式更符合伺服器端路由，或使用邊緣運算進行路由，例如 Lambda@Edge 搭配 Amazon CloudFront。

## 微型前端之間的通訊
<a name="communication"></a>

使用微型前端架構時，我們建議減少前端元件之間的耦合。減少耦合的一種方法是將同步函數呼叫移離非同步傳訊。

瀏覽器執行時間和使用者互動本質上是非同步的。事件可以透過訊息在生產者和消費者之間交換。這些事件提供明確定義的界面，用於跨微型前端進行通訊。

如果您遵循 DDD 實務來識別微型前端的邊界內容，下一步是識別必須跨邊界通訊的事件。

事件的訊息機制可以是原生 DOM 事件 (`CustomEvents`)、JavaScript 事件發射器，或平台團隊提供的被動串流程式庫。微型前端發佈事件並訂閱與其界限內容相關的事件。使用此方法，發佈者和訂閱者不需要彼此了解。合約是事件定義。如需這方面的視覺化呈現，請參閱使用*事件架構的邊界內容的與事件通訊*一節。 [https://eda-visuals.boyney.io/visuals/bounded-context-with-event-architectures](https://eda-visuals.boyney.io/visuals/bounded-context-with-event-architectures)