redraw()
- コア
- オプショナル
- ツール
説明
アプリケーションのデータレイヤーの変更後にDOMを更新します。
このメソッドは、Mithrilのビューで定義されたイベントハンドラのコンテキスト内、あるいはm.request
/m.jsonp
の処理が終わった後のコールバックなどの中でデータを変更したあとは、この目sっどを呼ぶ必要はありません。
このメソッドを使うべきは、setTimeout
/setInterval
/requestAnimationFrame
のコールバック、もしくはサードパーティーライブラリのコールバック内だけです。
通常、m.redraw
は非同期の再描画を開始しますが、最後のアニメーションフレーム内で再描画がリクエストされなかった場合などに、パフォーマンスの向上を目的として同期的に再描画を行う可能性があります。それでも、常に描画が非同期に行われるものとしてコードを書かなければなりません。
シグニチャ
m.redraw()
引数 | 型 | 必須 | 説明 |
---|---|---|---|
返り値 | 何も返しません |
どのように動作するのか
もしMithrilの外でコールバックが実行されてデータが変更されたら、プログラマーが手動でMithrilのレンダリングエンジンに再描画が必要なことを知らせる必要があります。setTimeout
/setInterval
/requestAnimationFrame
などの外部のコールバック、WebSocketライブラリのコールバック、jQueryプラグインのイベントハンドラ、サードパーティライブラリのXHRリクエストのコールバックなどが該当します。
再描画をリクエストするにはm.redraw()
を呼び出す必要があります。m.redraw
はm.mount
あるいはm.route
を使用した時しか動作しない点に注意してください。m.render
を使った時は、再描画を行わせるには再度m.render
を呼び出す必要があります。
ライフサイクルメソッドからm.redrawを呼んではいけません。呼んだ時の結果は未定義です。
License: MIT. © Leo Horie.