[Flutter] StatelessWidget と StatefullWidget

Flutterのフレームワークとして、StatelessWidget と StatefullWidgetの理解することが大切で
その意味と使い方を考えてみます




StatelessWidget と StatefullWidget

 

StatelessWidget と StatefullWidget は Flutter の基本的な要素です
この2つを理解するまえに、Widget と State の概念も理解しておく必要があります

 

 

Widget と State

Widget
UI、ユーザーインターフェースの構成要素のことです
テキストやボタンのほかレイアウト構造などすべてのUI要素が
Widgetとして構築されています
 
State
これは状態を意味するもので
FlutterではStateクラスとしてWidgetの状態を管理するのに使われます

 

StatelessWidget と StatefullWidget

 

ざっくり2つの違いは、

StatelessWidget:

  • 状態を持たない静的なWidget(静的ではない使い方もあります)
  • build メソッドを持ち、Wdgetを返す

StatefullWidget:

  • State(状態)を持っている動的なWdget
  • 状態を変化させるときは setState の引数コールバックで行う
  • stateの変化に応じて再描画

これ以外にもあげればたくさんありますがとりあえずここまで

 

StatelessWidget

 

例えば、プロジェクトの作成で「Empty Application」を選択してできるコードは
Hello World! が表示される StatelessWidget だけでできています

main.dart

MaterialApp Widget:
ルートWidgetで、アプリ全体を管理
Googleの提唱するデザインシステムである、Material Designでの
開発が容易にできる

Scaffold Widget:
アプリ画面の土台(足場)を形成して、その上にAoobarやbodyなど
様々なWidgetを載せて表示させる

Center Widget:
Scaffold の引数のbodyに設定されていてText Widgetのレイアウトを
画面中央に配置している

Text Widget:
言うまでもなくテキストを表示させるWidgetです

 

StatefullWidget

 

プロジェクトの作成で「Application」を選択してできるコードは
ボタンをタップするとカウンターが0から増加する、つまり状態が変わるアプリです

main.dart

References:
StatelessWidget class – Dart API
StatefulWidget class – Dart API

シェアする

  • このエントリーをはてなブックマークに追加

フォローする