Įdiekite miniriverpod per kelias minutes.

Nustatykite SDK apribojimus, pridėkite paketą ir patikrinkite, ar ProviderScope bei WidgetRef.watch veikia tinkamai.

Be kodo generavimo

šeimos tipo provider'iai, perrašymai ir priklausomybių injekcija modeliuojami naudojant subclass + args + Scope, be kodo generavimo.

Vieningas asinchroninis modelis

Vienas AsyncProvider apdoroja Future ir Stream, su griežtu atšaukimu persikrovimo, invalidate, refresh ir dispose metu.

Integruotas lygiagretumas

Mutacijų iškvietimai palaiko concurrent, queue, restart ir dropLatest per ref.invoke(provider.method()).

Rekomenduojamas įvadinis kelias

Apgaubkite programą ProviderScope, apibrėžkite Provider/AsyncProvider klases ir atnaujinkite būseną per ref.invoke su aiškiu lygiagretumo valdymu.

Diegimas

flutter pub add miniriverpod

Mutacija + iškvietimas

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

// Vartotojo sąsaja
await ref.invoke(userProvider.rename('Alice'));
Suderinamumo pastaba

miniriverpod sąmoningai išlaiko Provider + AsyncProvider + WidgetRef artumą Riverpod, bet codegen intensyvias vietas pakeičia subclass + args, Scope pagrindu vykdoma injekcija ir aiškūs mutacijų iškvietimai.