回调(Callbacks)

组件“link”是一种机制,通过该机制,组件可以注册回调并自行更新。

callback

注册一个回调,该回调将在执行时将消息发送到组件的更新机制。在内部,它将使用提供的闭包返回的消息调用 send_self。提供 Fn(IN) -> Vec<COMP::Message>,返回 Callback<IN>

send_message

当前循环结束后立即向组件发送消息,导致另一个更新循环启动。

send_message_batch

注册一个回调,该回调在执行时立即发送一批消息。如果其中任何一个消息将导致组件重新渲染,那么组件会在该批次所有消息被处理后重新渲染。提供 Fn(IN) -> COMP::Message,返回 Callback<IN>

Callbacks

(这部分可能会独立成为一小章。)

Callbacks 用于与 Yew 中的 services,agents 和父组件进行通信。它们仅仅是个 Fn,并由 Rc 包裹以允许被克隆。

它们有一个 emit 函数,该函数将它的 <IN> 类型作为参数并将其转换为目标所期望的消息。如果一个回调从父组件中通过 props 提供给子组件,则子组件可以在其 update 生命周期钩子中对该回调调用 emit,以将消息发送回父组件。在 html! 宏内被提供作为 props 的闭包或函数会自动转换为 Callbacks。