🍣
【Flutter】【基礎】statefulWidgetのライフサイクルについて
はじめに
textEditingControllerを使用した時にdispose()を使用し、調べたらLifecicleに辿り着いた為、勉強してみた。
結論
widgetが構築されてから破棄されるまでの流れのこと。
statefulWidgetの全体構成
statefulWidgetは大まかに『画面構築』『再描画』『画面破棄』の3工程で分けられる。
画面構築ので使われているWidget
createState()
・statefulWidgetを構築すると一番最初に呼ばれる
・widgetツリーに『状態』を作るために呼ばれる。
initState()
・Widgetツリーの初期化を行う
・一度だけ呼ばれる
didchangeDependencies()
stateオブジェクトの依存関係が変更された時に呼び出される。
再描画で使われているWidget
build()
・Widgetで作られるUIを構築する
・様々な場所から繰り返し呼び出される
・変更がある部分をツリーを検知して置き換える
didUpdateWidget()
・ウィジェットの構成が変更されるたびに呼び出される
・親Widgetが変更され、再描画する必要がある時に呼び出しされる
setState()
・状態が変わったことをフレームワークに通知する。
画面破棄で使われているWidget
deactivate()
・stateオブジェクトがツリーから削除するたびに呼び出される。
dispose()
・オブジェクトツリーがツリーから完全に削除され、2度とビルドされなくなったら呼ばれる。
参考文献
Discussion