日常実装向けのAPI早見表。
miniriverpod_core.dart と miniriverpod_flutter.dart で頻出するクラスとメソッドを整理しています。
コア型
状態管理の土台になる主要型です。
AsyncValue<T>
AsyncLoading / AsyncData / AsyncError
Provider<T>
同期値用プロバイダ(autoDispose対応)
AsyncProvider<T>
非同期値用プロバイダ(.futureセレクタ付き)
読み方
AsyncValue には when メソッドがないため、switch パターンか is 判定を使います。
Ref と ProviderContainer の主要メソッド
再計算、ライフサイクル、mutation 実行でよく使うAPIをまとめます。
よく使う操作
ref.invalidate(provider, keepPrevious: true);
メソッドマップ
read / watch / listen : 値取得と購読。
invalidate / refresh / refreshValue : 再計算。
onDispose / keepAlive / emit : ライフサイクル制御とStream接続。
mutation / mutate / invoke : 追跡可能な更新処理。
scope / overrideWithValue : DI とテスト差し替え。
Flutter API スナップショット
ProviderScope と WidgetRef の最小導線です。
flutter_usage.dart
// Scope
ProviderScope(
child: const App(),
);
// ConsumerWidget
class Header extends ConsumerWidget {
const Header({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final user = ref.watch(currentUser);
return Text('$user');
}
}
// Mutation実行
await ref.invoke(userProvider.rename('Alice'));
ProviderScope(container: external) を使う場合は手動 dispose が必要です。
UncontrolledProviderScope は注入コンテナを破棄しません。
Consumer / ConsumerWidget / ConsumerStatefulWidget を用途で選べます。