跳至主要内容
版本:0.21

代理

代理是一种将任务卸载到 Web 工作线程的方法。

为了让代理并发运行,Yew 使用 Web 工作线程

生命周期

agent lifecycle diagramagent lifecycle diagram

代理类型

范围

  • 公共 - 任何给定时间最多存在一个公共代理实例。桥梁将在 Web 工作程序中生成或连接到已生成的代理。当没有桥梁连接到此代理时,该代理将消失。

  • 私有 - 为每个新桥梁在 Web 工作程序中生成一个新代理。这适用于将与浏览器通信的共享但独立的行为移出组件。当连接的桥梁断开时,代理将消失。

  • 全局 (WIP)

代理和组件之间的通信

桥梁

桥梁允许代理和组件之间进行双向通信。桥梁还允许代理相互通信。

还提供了 use_bridge 挂钩,以便在函数组件中创建桥梁。

调度程序

调度程序允许组件和代理之间进行单向通信。调度程序允许组件向代理发送消息。

开销

代理使用 Web 工作程序(即私有和公共)。它们会对发送和接收的消息产生序列化开销。代理使用 bincode 与其他线程通信,因此成本远高于仅调用函数。

进一步阅读

  • web_worker_fib 示例展示了组件如何向代理发送消息并从代理接收消息。