Į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.

Built-in Concurrency

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

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 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.

Ankstesnis

Open Source