Riverpod-tyylinen käyttömukavuus selkeällä ajonaikaisella käytöksellä.
miniriverpod pitää Providerin ja AsyncProviderin tuttuina, mutta rajaa toiminnan selkeisiin API-rajapintoihin: subclass + args perhetyyppiseen identiteettiin, mutation tokenit päivityksiin ja ennustettava elinkaaren siivous.
Ei koodigenerointia
Perhetyyppiset providerit, override-korvaukset ja riippuvuuksien injektointi mallinnetaan subclass + args + Scope -rakenteella ilman koodigenerointia.
Yhtenäinen asynkroninen malli
Yksi AsyncProvider käsittelee Future- ja Stream-tilanteet, ja keskeytys on tiukka rebuildin, invalidaten, refreshin ja disposen aikana.
Sisäänrakennettu rinnakkaisuus
Mutation-kutsut tukevat concurrent-, queue-, restart- ja dropLatest-käyttäytymistä ref.invoke(provider.method()) -kutsun kautta.
Suositeltu aloituspolku
Kääri sovelluksesi ProviderScopeen, määritä Provider/AsyncProvider-luokat ja aja tilapäivitykset ref.invoke-kutsun kautta selkeällä rinnakkaisuudella.
Asenna
flutter pub add miniriverpod
Mutaatio + 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,
);
}
// Käyttöliittymä
await ref.invoke(userProvider.rename('Alice'));
Yhteensopivuus huomautus
miniriverpod pysyy tarkoituksella Provider + AsyncProvider + WidgetRef lähellä Riverpodia, mutta korvaa koodigenerointiin nojaavat polut subclass + args -mallilla, Scope-pohjaisella injektiolla ja selkeillä mutation-kutsuilla.
Edellinen
Avoin lähdekoodiSeuraava
Asennus