Riverpodi-laadne kasutusmugavus selge käitumisega käitusajal.

miniriverpod hoiab Provideri ja AsyncProvideri tuttavana, kuid kitsendab käitumise selgeteks API-deks: subclass + args perekonnalaadse identiteedi jaoks, mutation tokens uuenduste jaoks ning ennustatav elutsükli puhastamine.

Koodigeneratsioonita

Perekonnalaadsed providerd, ülekatmised ja sõltuvuste süstimine modelleeritakse subclass + args + Scope abil, ilma koodigeneratsioonita.

Ühtne asünkroonne mudel

Üks AsyncProvider käsitleb Future'it ja Streami, rangete katkestustega rebuildi, invalidate'i, refresh'i ja dispose'i ajal.

Sisseehitatud samaaegsus

Mutatsioonikutsed toetavad concurrent, queue, restart ja dropLatest käitumisi läbi ref.invoke(provider.method()).

Soovitatud sissejuhatav töövoog

Paki oma rakendus ProviderScope'iga, defineeri Provider/AsyncProvider klassid ja käivita oleku uuendused läbi ref.invoke'i koos selge samaaegsusega.

Paigaldus

flutter pub add miniriverpod

Mutatsioon + 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,
  );
}

// Kasutajaliides
await ref.invoke(userProvider.rename('Alice'));
Ühilduvuse märkus

miniriverpod hoiab teadlikult Provider + AsyncProvider + WidgetRef lähedust Riverpodile, kuid asendab koodigeneratsioonile tuginevad teed subclass + args, Scope-põhise süstimise ja selgete mutatsioonikutsetega.