ປະສົບການແບບ Riverpod ພ້ອມພຶດຕິກໍາ runtime ທີ່ຊັດເຈນ.
miniriverpod ຮັກສາ Provider ແລະ AsyncProvider ໃຫ້ຄຸ້ນເຄີຍ, ແຕ່ຈະຈໍາກັດພຶດຕິກໍາໄວ້ໃນ API ທີ່ຊັດເຈນ: subclass + args ສໍາລັບອົງປະກອບແບບ family, mutation token ສໍາລັບການອັບເດດ, ແລະການປ່ອຍວົງຈອນຊີວິດທີ່ຄາດໄດ້.
ບໍ່ຕ້ອງມີ Code Generation
provider ແບບ family, override, ແລະ dependency injection ໄດ້ຖືກຈໍາລອງດ້ວຍ subclass + args + Scope ໂດຍບໍ່ຕ້ອງມີ code generation.
ຮູບແບບ Async ແບບຮວມ
AsyncProvider ດຽວຮັບຜິດຊອບທັງ Future ແລະ Stream ພ້ອມການຍົກເລີກທີ່ເຂັ້ມງວດເມື່ອ rebuild, invalidate, refresh, ແລະ dispose.
Built-in Concurrency
Mutation calls ຮອງຮັບ concurrent, queue, restart, ແລະ dropLatest ຜ່ານ ref.invoke(provider.method()).
ແນວທາງເລີ່ມຕົ້ນທີ່ແນະນໍາ
ຫຸ້ມແອັບຂອງທ່ານດ້ວຍ ProviderScope, ກໍານົດຄລາສ Provider/AsyncProvider, ແລ້ວໃຫ້ອັບເດດ state ຜ່ານ 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'));
Compatibility Note
miniriverpod ຕັ້ງໃຈໃຫ້ Provider + AsyncProvider + WidgetRef ໃກ້ຄຽງກັບ Riverpod ແຕ່ຈະແທນທີ່ເສັ້ນທາງທີ່ໜັກດ້ວຍ codegen ດ້ວຍ subclass + args, ການສະຫນອງ Scope-based, ແລະ mutation calls ທີ່ຊັດເຈນ.
ກ່ອນໜ້າ
Open Sourceຕໍ່ໄປ
ຕິດຕັ້ງ