【 Flutter 】Flutter を 基礎 から 学習 ( Flutterの内部構造 ) part214 ライフサイクル

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は Flutterの内部構造 ( part214 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( ライブラリ ) part213 プラットフォームアクセスとPluginパッケージ

気を取りなおして!新しいセクションのライブラリについて学びます。

ライフサイクル

ライフサイクルでは主要なウィジェットを深堀しより理解しようという趣旨のセクションです。

StatelessWidget

StatelessWidgetクラスのbuildメソッド実行タイミングについてのトピックです。

StatelessWidgetWidgetクラスを継承しています。さらにDiagnosticableTreeクラスを継承しています。
このWidgetクラス、DiagnosticableTreeクラスともに大したことはしていない(失礼!)です。

StatelessWidgetbuildメソッド関連で大事なのは、StatelessWidgetクラスのcreateElementsメソッドです。
このメソッドの実装でStatelessElementクラスをインスタンス化している部分が最も重要な部分ということだそうです。

ウィジェットクラスにはそれぞれに対応するエレメントクラスが用意されているようです。
StatelessWidgetStatelessElementクラスが・・・という具合です。

エレメントクラスもウィジェットクラス同様にツリー構造になっています。

 

 

LoadingWidgetクラスがインスタンス化(Lインスタンス)されると対応したStatelessElementクラスもインスタンス(+Lインスタンスの参照を持つ)されます。

 

最後に

なぜWidgetツリーだけではなくElementツリーも用意されているのでしょうか?
なぜWidgetは影武者のようなElementを持っているのでしょうか?

謎は深まります。

今日はここまで!