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.

Built-in Concurrency

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'));
Compatibility Note

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.

Seterusnya

Pemasangan