📚
riverpod公式で学んだこと ーProvider編
はじめに
riverpodを勉強中なので、公式ドキュメントを読んだ印象をまとめようと思います。想像も含んでいるので、的外れなことも書くかと思いますが、後で振り返ると面白そうなので記事に残します。
公式(https://riverpod.dev/)
Getting startedから読み始めましたが、Api references -> All Providers 内の説明が一番わかりやすいと感じました。
今回はriverpodのProviderについて説明します。
riverpod
主なriverpodのprovider
- Provider
- StateNotifierProvider
- StateProvider
共通のルール
- ProviderScopeでルートウィジェット(デフォルトではMyApp)を囲む。
- ConsumerWidget内でプロバイダーを使用できる。readやwatchでプロバイダーの変更を受け取った時、ConsumerWidget内のWidgetはすべて再描画される。
Provider
一番ベーシックなプロバイダー
アプリ内の色々なところでこのプロバイダーを使う。データの管理は基本的にはこのProviderで行う。特徴としては、readを使って簡単にデータを編集することはできない。ただし、参照先の値が変わるとデータが変更される。
例:Providerの参照先としてStateProviderの参照元を渡す。
Provider
final countStateProvider = StateProvider<int>((ref) => 0);
final countProvider = Provider<int>((ref) {
final repository = ref.watch(countStateProvider);
return repository;
});
この場合は、StateProviderの方から値を変えると、その変更がProviderにも適用される。
Discussion