【 Flutter 】Flutter を 基礎 から 学習 ( Flutterの内部構造 ) part215 ライフサイクル
「 基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は Flutterの内部構造 ( part215 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( Flutterの内部構造 ) part214 ライフサイクル
引き続き、ライブラリについて学びます。
ライフサイクル
StatelessWidget
StatelessWidget
のbuild
に関する続きです。
StatelessWidget
のbuild
メソッドが呼び出されるのは・・・
Element#inflateWidget → ComponentElement#mount → ComponentElement#_firstBuild → Element#rebuild → ComponentElement#performRebuild(built = build();
)
で晴れてめでたくStatelessWidget
のbuild
メソッドが呼び出されるようです。かなり長い道のりですね。
このbuild
までの間にElementツリーに自身の影武者であるStatelessElement
を追加したりdElement
クラスなどの親クラスが下処理したりと大変そうです。
この下処理のことをinitial
と呼んでいるのでしょうか。
ライフサイクル
StatelessWidget
の状態は2つだけです。
build
メソッドが呼び出される前(initial状態)build
メソッドが呼び出された後(active状態)
initial
からactive
に状態が変わった後はずっとactive
のままとなります。
状態は変わりません。なのでStatelessWidget
はimmutableということになります。
再描画される契機はホットリロード(ressemble
メソッド呼び出し)が行われ、エレメントの再構築が行われた場合のみです。
それ以外で再描画されることはないのです!
最後に
build
メソッド呼び出し前後で状態が変わるだけ・・・を説明するために内部ソースの説明をしたということでしょうかね。
私にはちょっとわかりませんでした。
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません