Riverpod стиліндегі ыңғайлылық, бірақ runtime мінез-құлқы айқын.
miniriverpod Provider мен AsyncProvider-ды таныс күйде қалдырады, бірақ мінез-құлықты айқын API-лерге тарылтады: family-тәрізді идентификацияға subclass + args, жаңартуларға mutation token-дар және болжамды lifecycle disposal.
Код генерациясы жоқ
family-тәрізді provider-лер, override-тер және dependency injection code generation-сыз subclass + args + Scope арқылы үлгіленеді.
Біріктірілген async моделі
Бір AsyncProvider Future мен Stream-ді өңдейді, rebuild, invalidate, refresh және dispose кезінде қатаң тоқтатумен.
Ішкі concurrency
Mutation шақырулары ref.invoke(provider.method()) арқылы concurrent, queue, restart және dropLatest қолдайды.
Ұсынылатын бастау ағыны
Қолданбаңызды ProviderScope ішіне ораңыз, Provider/AsyncProvider кластарын анықтаңыз және күй жаңартуларын ref.invoke арқылы нақты concurrency-мен іске қосыңыз.
Орнату
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'));
Үйлесімділік туралы ескерту
miniriverpod әдейі Provider + AsyncProvider + WidgetRef Riverpod-қа жақын қалады, бірақ codegen-ге ауыр жолдарды subclass + args, Scope-негізді injection және айқын mutation шақыруларымен алмастырады.
Алдыңғы
Open SourceКелесі
Орнату