💬

flutter RiverpodのProvider使い分けができていますか?

2024/03/24に公開

目的

riverpod を使用する際に、何も考えずに「StateNotifierProvider」を使用してしまっていた。
riverpod を使用する中で、多くの種類があることを知り、実際にどのような使い分けをしているのかを知るためにこの記事を書いた。

riverpods とは

https://riverpod.dev/ja/

riverpods provider の種類とその用途

名前 特徴 用途、実用例
Provider 状態の変更は、不可。データの読み込みのみ API のエンドポイントの設定値(http/api/test)、apiClient で使用。
FutureProvider 非同期処理に対応した Provider。状態変更は不可。データの読み込みのみ。 HTTP リクエストによって取得したデータをウィジェットに提供する場合(天気 api などの user が変更することのないものに利用)
StremProvider 時間と共に変化するデータストリームからの値を提供する必要がある場合に使用する。 chat の機能などのデータベースやユーザの動きを常に監視しなければいけない時に利用。
StateProvider シンプル、単一の状態の変更を扱う. トグルの ON,OFF など。
StateNotiferProvider 複雑、複数の状態の変更に行う。 入力 form など
(Async)NotifierProvider
ChangeNotiferProvider 基本的に非推奨。機能は、StateNotirfeProvier と一緒。 他のパッケージが ChangeNotirferProvier と依存している場合に使用する。
GitHubで編集を提案

Discussion