Flutter 的輕量狀態管理方案。

無需程式碼生成或龐大依賴,也能體驗 Riverpod 的反應式架構。

無需 Code Gen

撰寫標準 Dart 類別與 provider,不需要 build_runner。

輕量

體積小於 50KB,適合效能敏感的應用。

Built-in Concurrency

直接取材自 Riverpod 優雅的狀態讀取語法。

第一步

數分鐘內將 miniriverpod 整合到 Flutter 專案。

安裝

flutter pub add miniriverpod

Mutation + Invoke

lib/main.dart
class UserProvider extends AsyncProvider<User?> {
  UserProvider() : super.args(null);

  late final renameMut = mutation<void>(#rename);

  Call<void, AsyncValue<User?>> rename(String name) => mutate(
    renameMut,
    (ref) async {
      final api = ref.watch(apiProvider);
      await api.rename(name);
      ref.state = AsyncData(await api.me());
    },
    concurrency: Concurrency.restart,
  );
}

// UI
await ref.invoke(userProvider.rename('Alice'));
Compatibility Note

不同於原版 Riverpod, Provider + AsyncProvider + WidgetRef 專注於 Flutter 應用,不支援純 Dart 專案,因此移除了 70% 內部邏輯以提升效能。

上一頁

Open Source

下一頁

安裝