0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FlutterのdidChangeDependenciesメソッド解説

Last updated at Posted at 2024-10-04

はじめに

didChangeDependenciesは、FlutterのStatefulWidgetのライフサイクルメソッドの一つで、ウィジェットが依存するデータが変わった際に呼び出されます。これは、主にInheritedWidgetなどの依存関係に基づいた更新を検知します。
メモとして簡単にまとめたため、詳しく知りたい方はこちらをご覧ください。もし他に良い方法や改善点があれば、ぜひコメントいただけると幸いです。

呼ばれるタイミング

  1. initStateの直後: 初期化が完了するとすぐに呼ばれます。
  2. 依存するInheritedWidgetの変更時: ウィジェットが依存しているデータ(例えばテーマやグローバル設定)が変更された場合に再度呼ばれます。

使いどころ

  • 通常はbuildメソッドが依存関係の変更を検知しますが、重い処理(ネットワークリクエストなど)をbuildで行うとパフォーマンスが悪化する可能性があるため、一度だけ実行したい処理didChangeDependenciesで処理することが推奨されます。

簡単な例


@override
void didChangeDependencies() {
  super.didChangeDependencies();
  // 初回依存データのセットアップや重い処理
  fetchData(); // 例: APIリクエスト
}

まとめ

  • 依存関係の変化をキャッチするメソッド
  • initState直後と、InheritedWidgetの変更に反応します。
  • パフォーマンスを改善するために、buildで行うべきでない重い処理をここで実行します。

これにより、アプリが効率的に依存データを扱い、不要な再構築を防ぐことができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?