日常工作的 API 快速查詢。
本頁摘要 miniriverpod_core.dart 與 miniriverpod_flutter.dart 中常用的類別與方法。
核心類型
核心狀態與 provider 基礎原語。
AsyncValue<T>
AsyncLoading / AsyncData / AsyncError
Provider<T>
具有可選 autoDispose 的同步 provider
AsyncProvider<T>
具有 .future 選擇器的非同步 provider
閱讀提示
AsyncValue 不包含 when 方法;請使用 switch 模式比對或 is 檢查。
Ref 與 ProviderContainer 方法
用於重新整理、失效、生命週期與 mutation 執行的常用操作方法。
常見順序
方法對照表
read / watch / listen : 讀取並訂閱 provider。
invalidate / refresh / refreshValue : 重新計算狀態。
onDispose / keepAlive / emit : 生命週期與 stream 接線。
mutation / mutate / invoke : 已追蹤的寫入操作。
scope / overrideWithValue : DI 與測試覆寫。
Flutter API 快照
應用程式程式碼中使用的 ProviderScope + WidgetRef 入口點。
// 作用域
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) 需要手動呼叫 container.dispose()。
UncontrolledProviderScope 絕不會釋放注入的容器。
Consumer、ConsumerWidget 與 ConsumerStatefulWidget 都受到支援。