【Flutter】Widget(ウィジェット)をクラス定義して見通しがよいコードにする

この記事の情報は次のバージョンで動作確認しています。

  • MacOS Monterey (12.1)
  • Flutter (v2.10.4)
  • VSCode (v1.67.2)
  • Flutter

    はじめに

    宣言的UIのコードはネストが深くなりガチですよね?

    Widgetとその子分達を別クラスに分離すると見通しがよくなります。

    今回そのやり方を共有したいと思います。

    独自Widgetを定義する方法

    例えば以下のコードのchild部分の実装を別の所で定義にしたいとなった場合

    別定義にするにはStatelessWidgetを継承したクラスを定義します。

    class `好きなクラス名` extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
          return `好きなように実装`
      }
    }
    

    それをchiildに対してセットしてあげれば完成です。

    独自Widgetに値を渡したい場合

    独自Widgetに値を渡したい時もあると思います。

    そういう時は変数とコンストラクを定義します。

    呼び出し側でこのようにして引数を渡しします。

    コンストラクタは色んな書き方があります。↑のは一番シンプルなやつです。