Callbacks
”リンク”コンポーネントはコンポーネントがコールバックを登録できて自身を更新することができるメカニズムです。
ComponentLink API
callback
実行時にコンポーネントの更新メカニズムにメッセージを送信するコールバックを登録します。
これは、渡されたクロージャから返されるメッセージで send_self
を呼び出します。
Fn(IN) -> Vec<COMP::Message>
が渡され、Callback<IN>
が返されます。
send_message
現在のループが終了した直後にコンポーネントにメッセージを送信し、別の更新ループを開始します。
send_message_batch
実行時に一度に多数のメッセージを一括して送信するコールバックを登録します。
メッセージによってコンポーネントが再レンダリングされる場合、バッチ内のすべてのメッセージが処理された後、コンポーネントは再レンダリングされます。
Fn(IN) -> COMP::Message
が渡され、Callback<IN>
が返されます。
コールバック
(This might need its own short page.)
コールバックは、Yew 内のサービス、エージェント、親コンポーネントとの通信に使われます。
これらは単に Fn
を Rc
でラップしただけであり、クローンを作成できるようにするためのものです。
これらの関数には emit
関数があり、<IN>
型を引数に取り、それをアドレスが欲しいメッセージに変換します。
親からのコールバックが子コンポーネントに props で提供されている場合、子は update
ライフサイクルフックで emit
をコールバックに呼び出して親にメッセージを返すことができます。
マクロ内で props として提供されたクロージャや関数は自動的にコールバックに変換されます。