🍣

【Flutter】【基礎】statefulWidgetのライフサイクルについて

2023/11/05に公開

はじめに

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度とビルドされなくなったら呼ばれる。

参考文献

https://qiita.com/kazutxt/items/8879fd1ba8b5688fa3b3

Discussion