13

私はフラッターの世界の初心者であり、最近フラッター ウィジェットのベースとなるステートフル ウィジェットとステートレス ウィジェットについて学びました (または学んだように思います)。

ディスプレイに再描画されないもの (テキスト、ボタンなど) にはステートレス ウィジェットを使用しますが、ステートフル ウィジェットはそれ自体を再描画できます。

私の質問は、ステートフル ウィジェットを使用してステートレス ウィジェットと同じ種類のウィジェットを描画できるのに、なぜステートレス ウィジェットが必要なのかということです。

または、フラッターでステートフル ウィジェットよりもステートレスを使用する特定の理由はありますか? それとも、一度だけコンテンツを描画できるステートレス ウィジェットではなく、常にステートフル ウィジェットを使用できますか?

ありがとう、そしてこれがばかげた質問だったらごめんなさい。

編集

問題は、ステートレスとステートフルの違いではありません。私は違いを知っていますが、ステートフルウィジェットのみを使用することの影響は何ですか?それを使用することで、ステートレスウィジェットができることのほとんどを実装することもできるのに、なぜステートレスウィジェットが必要なのですか?フラッター環境でのそれの重要性は最も時々再描画されるアプリの割合は?

4

4 に答える 4

4

はい、StatefulWidget は再構築できます。これは通常、Inheritedwidgets を使用するときに発生します。

StatelessWidget は、大きなウィジェット ツリーを小さな再利用可能なウィジェットに分割するために存在します。

「でも、これには StatefulWidget や関数を使用できます」と思うかもしれません。これは本当ですが、正確ではありません:

  • StatefulWidget には巨大なボイラープレートが付属していますが、そのような状況では必要ありません。したがって、これは単にノイズを追加し、コードを読みにくくします。
  • 関数は独立して再構築することも、== にアクセスしてオーバーライドすることもできません。keyそのため、パフォーマンスが低下したり、バグが発生したりする可能性があります。
于 2019-09-05T07:32:12.360 に答える