Įdiekite miniriverpod per kelias minutes.
Nustatykite SDK apribojimus, pridėkite paketą ir patikrinkite, ar ProviderScope bei WidgetRef.watch veikia tinkamai.
Be kodo generavimo
šeimos tipo provider'iai, perrašymai ir priklausomybių injekcija modeliuojami naudojant subclass + args + Scope, be kodo generavimo.
Vieningas asinchroninis modelis
Vienas AsyncProvider apdoroja Future ir Stream, su griežtu atšaukimu persikrovimo, invalidate, refresh ir dispose metu.
Built-in Concurrency
Mutacijų iškvietimai palaiko concurrent, queue, restart ir dropLatest per ref.invoke(provider.method()).
Rekomenduojamas įvadinis kelias
Apgaubkite programą ProviderScope, apibrėžkite Provider/AsyncProvider klases ir atnaujinkite būseną per ref.invoke su aiškiu lygiagretumo valdymu.
Diegimas
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 sąmoningai išlaiko Provider + AsyncProvider + WidgetRef artumą Riverpod, bet codegen intensyvias vietas pakeičia subclass + args, Scope pagrindu vykdoma injekcija ir aiškūs mutacijų iškvietimai.
Ankstesnis
Open SourceKitas
Diegimas