Riverpod stila ergonomika ar skaidru izpildlaika uzvedību.

miniriverpod saglabā Provider un AsyncProvider pazīstamus, bet ierobežo uzvedību līdz skaidrām API: subclass + args ģimenes tipa identitātei, mutation žetoni atjauninājumiem un paredzama dzīves cikla atbrīvošana.

Bez koda ģenerēšanas

ģimenes tipa provideri, pārrakstījumi un atkarību injekcija tiek modelēti ar subclass + args + Scope, bez koda ģenerēšanas.

Apvienots asinhronais modelis

Viens AsyncProvider apstrādā Future un Stream, ar stingru atcelšanu pārbūves, invalidate, refresh un dispose laikā.

Built-in Concurrency

Mutation izsaukumi atbalsta concurrent, queue, restart un dropLatest caur ref.invoke(provider.method()).

Ieteicamā ieviešanas plūsma

Ietiniet savu lietotni ProviderScope, definējiet Provider/AsyncProvider klases un veiciet stāvokļa atjauninājumus ar ref.invoke un skaidru paralelitātes kontroli.

Instalēšana

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 apzināti paliek Provider + AsyncProvider + WidgetRef tuvs Riverpod, bet codegen smagās daļas aizstāj ar subclass + args, Scope balstītu injekciju un skaidriem mutāciju izsaukumiem.

Iepriekšējais

Open Source