跳到主要內容
版本: 0.21

代理

代理是一種將任務卸載到網頁工作者的方式。

為了讓代理可以同時執行,Yew 使用了 網頁工作者

生命週期

agent lifecycle diagramagent lifecycle diagram

代理的類型

範圍

  • 公用 - 在任何給定的時間,最多只能有一個公用代理實體。橋接器會產生新的代理,或連線到已經產生的代理。當沒有橋接器連線到這個代理時,這個代理就會消失。

  • 私有 - 為每個新的橋接器產生一個新的代理。這種方式很適合將共用但獨立的行為(與瀏覽器通訊)從元件中移出來。當連線的橋接器中斷時,這個代理就會消失。

  • 全域 (尚在開發)

代理與元件之間的通訊

橋接器

橋接器允許代理與元件之間雙向通訊。橋接器也允許代理相互通訊。

use_bridge 鉤子同時也提供,用於在函數元件中建立橋接器。

派送器

派送器允許元件與代理之間單向通訊。派送器允許元件傳送訊息至代理。

額外負載

代理使用網頁工作者(即非公開和公開)。它們會使傳送和接收訊息產生序列化負載。代理使用 bincode 與其他執行緒通訊,因此成本遠高於僅呼叫函數。

進一步閱讀

  • 這個 web_worker_fib 範例展示了元件如何傳送訊息至代理以及從代理接收訊息。