Giải pháp state management nhẹ cho Flutter.

Trải nghiệm kiến trúc reactive của Riverpod mà không cần code generation hoặc phụ thuộc nặng.

Không cần code gen

Viết class Dart và provider chuẩn. Không cần build_runner.

Nhẹ

Dung lượng dưới 50KB. Lý tưởng cho app cần hiệu năng.

Built-in Concurrency

Lấy cảm hứng trực tiếp từ cú pháp đọc state của Riverpod.

Bước đầu

Học cách tích hợp miniriverpod vào dự án Flutter trong vài phút.

Cài đặt

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

Không giống Riverpod gốc, Provider + AsyncProvider + WidgetRef tập trung vào Flutter và không hỗ trợ dự án Dart thuần. Nhờ đó chúng tôi lược bỏ 70% logic nội bộ để hiệu năng tốt hơn.