Riverpod-lignende ergonomi med eksplicit runtime-adfærd.
miniriverpod bevarer Provider og AsyncProvider som noget velkendt, men snævrer adfærden ind til eksplicitte API'er: subclass + args til familie-lignende identitet, mutationstokens til opdateringer og forudsigelig nedlukning af livscyklussen.
Ingen kodegenerering
Familie-lignende providers, overrides og afhængighedsinjektion modelleres med subclass + args + Scope, uden kodegenerering.
Samlet asynkron model
Én AsyncProvider håndterer Future og Stream med streng annullering ved rebuild, invalidate, refresh og dispose.
Indbygget samtidighed
Mutationskald understøtter concurrent, queue, restart og dropLatest via ref.invoke(provider.method()).
Anbefalet introduktionsforløb
Pak din app ind med ProviderScope, definér Provider/AsyncProvider-klasser, og kør statusopdateringer gennem ref.invoke med eksplicit samtidighed.
Installer
flutter pub add miniriverpod
Mutation + kald
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,
);
}
// Brugerflade
await ref.invoke(userProvider.rename('Alice'));
Kompatibilitetsnote
miniriverpod holder bevidst Provider + AsyncProvider + WidgetRef sig tæt på Riverpod, men erstatter kodegenereringstunge stier med subclass + args, Scope-baseret injektion og eksplicitte mutationskald.
Forrige
Åben kildekodeNæste
Installation