-
Flutterの状態管理パッケージ
-
Providerの種類
- Provider: 基本
- 外部からは変更できない値を公開できる基本的なProvider
- 別のProvider(他の種類含む)の値を加工して別の値にして返すこともできる
ref.watch(provider).when
- FlutureProvider: 非同期で取得した値を提供
- 非同期関数の実行が終わったらWidgetを再構築する
- 実行中・エラーのハンドリングもできる
- StreamProvider: 徐々に値を返して再描画
- NotifierProvider: 外部から変更可能な状態・状態操作メソッドを提供
- AsyncNotifierProvider: 非同期な状態操作・ステート
- ChangeNotifierProvider
- Provider: 基本
-
Code Generation: About code generation | Riverpod
dev_dependencies
にbuild_runner
,riverpod_generator
が必要dart run build_runner build
でコード生成
-
Consumer
(Docs)でStatelessWidget内で使ったり、再構築の範囲を制限して最適化したりできる -
リアクティブなUIを作りたいときは
ref.watch
-
一度だけ値を取得したいときは
ref.read
-
状態が変更されたときに何らかの動作をしたい場合は
ref.listen
(購読ができる) -
特定の条件下で再構築したい場合は
provider.select
(参考) 参考