💬

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と依存している場合に使用する。

Discussion