Тодорхой runtime зан үйлтэй Riverpod маягийн хэрэглээ.
miniriverpod нь Provider болон AsyncProvider-ыг танил хэвээр хадгалдаг ч, family төрлийн ялгаралтад зориулсан subclass + args, шинэчлэлтүүдэд mutation token, таамаглах боломжтой амьдралын мөчлөгийн устгал зэрэг тодорхой API болгон зан үйлийг нарийсгадаг.
Код үүсгэлгүй
family төстэй provider, override, dependency injection-ийг code үүсгэлгүйгээр subclass + args + Scope-оор загварчилдаг.
Нэгдсэн async загвар
Нэг AsyncProvider нь Future болон Stream хоёуланг нь удирдаж, rebuild, invalidate, refresh, dispose үед хатуу цуцлалт хийнэ.
Дотоод concurrency
Mutation дуудлагууд ref.invoke(provider.method())-ээр concurrent, queue, restart, dropLatest-ийг дэмжинэ.
Зөвлөмжит эхлэлийн урсгал
Програмаа ProviderScope-оор ороож, Provider/AsyncProvider class-уудыг тодорхойлоод, ref.invoke-ээр тодорхой concurrency-тэй state шинэчлэлтүүдийг ажиллуулж сураарай.
Суулгалт
flutter pub add miniriverpod
Mutation + дуудалт
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 дуудлагуудаар сольсон.
Өмнөх
Нээлттэй эхДараах
Суулгалт