Ergonomi gaya Riverpod dengan tingkah laku runtime yang jelas.

miniriverpod mengekalkan Provider dan AsyncProvider agar terasa biasa, tetapi mengecilkan tingkah laku kepada API yang jelas: subclass + args untuk identiti seumpama family, token mutation untuk kemas kini, dan pelupusan kitaran hayat yang boleh dijangka.

Tanpa Penjanaan Kod

provider seumpama family, override, dan dependency injection dimodelkan dengan subclass + args + Scope, tanpa penjanaan kod.

Model Async Bersepadu

Satu AsyncProvider mengendalikan Future dan Stream, dengan pembatalan yang ketat semasa rebuild, invalidate, refresh, dan dispose.

Konkruensi Terbina

Panggilan mutation menyokong concurrent, queue, restart, dan dropLatest melalui ref.invoke(provider.method()).

Aliran Permulaan Disyorkan

Ketahui cara membungkus aplikasi anda dengan ProviderScope, mentakrifkan kelas Provider/AsyncProvider, dan menjalankan kemas kini state melalui ref.invoke dengan konkruensi yang jelas.

Pemasangan

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'));
Nota Keserasian

miniriverpod secara sengaja kekal Provider + AsyncProvider + WidgetRef hampir dengan Riverpod, tetapi menggantikan laluan berat penjanaan kod dengan subclass + args, suntikan berasaskan Scope, dan panggilan mutation yang jelas.