💬
flutter RiverpodのProvider使い分けができていますか?
目的
riverpod を使用する際に、何も考えずに「StateNotifierProvider」を使用してしまっていた。
riverpod を使用する中で、多くの種類があることを知り、実際にどのような使い分けをしているのかを知るためにこの記事を書いた。
riverpods とは
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 と依存している場合に使用する。 |
Discussion