📚

riverpod公式で学んだこと ーProvider編

2023/01/06に公開

はじめに

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