Riverpod-stílusú ergonómia kifejezett futásidejű viselkedéssel.
A miniriverpod megtartja a Provider és AsyncProvider ismerős felületét, de a viselkedést kifejezett API-kra szűkíti: subclass + args az family-szerű azonossághoz, mutation tokenek a frissítésekhez, és kiszámítható életciklus-lebontás.
Kódgenerálás nélkül
A family-szerű providereket, override-okat és dependency injectiont subclass + args + Scope modellezi, kódgenerálás nélkül.
Egységes Async modell
Egyetlen AsyncProvider kezeli a Future-t és a Streamet, szigorú megszakítással rebuild, invalidate, refresh és dispose esetén.
Beépített konkurencia
A mutation hívások támogatják a concurrent, queue, restart és dropLatest módokat a ref.invoke(provider.method()) segítségével.
Ajánlott kezdő útvonal
Csomagolja az alkalmazást ProviderScope-ba, definiáljon Provider/AsyncProvider osztályokat, és futtassa az állapotfrissítéseket ref.invoke segítségével, kifejezett konkurenciával.
Telepítés
flutter pub add miniriverpod
Mutáció + 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'));
Kompatibilitási megjegyzés
A miniriverpod tudatosan Provider + AsyncProvider + WidgetRef közel marad a Riverpodhoz, de a kódgenerálás-központú útvonalakat subclass + args, Scope-alapú injektálás és kifejezett mutation hívások váltják fel.
Előző
Nyílt forráskódKövetkező
Telepítés