Ergonomi i Riverpod-stil med eksplisitt opptidsatferd.
miniriverpod beholder kjente elementer fra Provider og AsyncProvider, men snevrer inn atferden til eksplisitte API-er: subclass + args for family-lignende identitet, mutasjonstokener for oppdateringer og forutsigbar livssyklus-disposal.
Ingen kodegenerering
family-lignende tilbydere (providers), overstyringer og avhengighetsinjeksjon (DI) er modellert med subclass + args + Scope, helt uten kodegenerering.
Enhetlig asynkron modell
En enkelt AsyncProvider håndterer både Future og Stream, med streng avbrytelse ved gjenoppbygging, ugyldiggjøring, oppdatering og sletting.
Innebygd samtidig kjøring
Mutasjonskall støtter samtidig kjøring, kø, omstart og dropLatest via ref.invoke(provider.method()).
Anbefalt introduksjonsflyt
Pakk inn appen din i ProviderScope, definer Provider/AsyncProvider-klasser, og kjør tilstandsoppdateringer gjennom ref.invoke med eksplisitt samtidig kjøring.
Installer
flutter pub add miniriverpod
Mutasjon + Invoke
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'));
Kompatibilitetsmerknad
miniriverpod beholder bevisst Provider + AsyncProvider + WidgetRef nært opptil Riverpod, men erstatter kodegenereringstunge stier med subclass + args, Scope-basert injeksjon og eksplisitte mutasjonskall.
Forrige
Åpen kildekodeNeste
Installasjon