日常工作的 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 都受到支援。

下一步

Providers

回到 Provider、AsyncProvider 與讀取 API 的實際用法。

開啟 Providers

Mutations

使用並行控制實作明確的寫入流程。

開啟 Mutations