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ā.
Iebūvēta paralelitāte
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
Mutācija + izsaukums
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,
);
}
// Lietotāja saskarne
await ref.invoke(userProvider.rename('Alice'));
Saderības piezīme
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
Atvērtais kodsTālāk
Instalēšana