💬
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