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.
Built-in Concurrency
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 + 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'));
Compatibility Note
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
Open SourceNæste
Installation