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.

Built-in Concurrency

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

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 hoiab teadlikult Provider + AsyncProvider + WidgetRef lähedust Riverpodile, kuid asendab koodigeneratsioonile tuginevad teed subclass + args, Scope-põhise süstimise ja selgete mutatsioonikutsetega.

Järgmine

Paigaldus