ປະສົບການແບບ 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

lib/main.dart
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

ຕໍ່ໄປ

ຕິດຕັ້ງ