വ്യക്തമായ runtime പെരുമാറ്റത്തോടെയുള്ള Riverpod-ശൈലി അനുഭവം.

miniriverpod Provider-യും AsyncProvider-യും പരിചിതമായി നിലനിർത്തുന്നു, പക്ഷേ പെരുമാറ്റം വ്യക്തമായ APIകളിലേക്ക് ചുരുക്കുന്നു: family പോലെയുള്ള തിരിച്ചറിയലിനായി subclass + args, updates-ന് mutation tokens, കൂടാതെ പ്രവചനയോഗ്യമായ lifecycle disposal.

Code Generation ഇല്ല

family പോലെയുള്ള providers, overrides, dependency injection എന്നിവ code generation ഇല്ലാതെ subclass + args + Scope ഉപയോഗിച്ച് മാതൃകീകരിക്കുന്നു.

ഏകീകൃത Async മോഡൽ

ഒരു AsyncProvider Future-നും Stream-നും കൈകാര്യം ചെയ്യുന്നു, rebuild, invalidate, refresh, dispose സമയങ്ങളിൽ കർശനമായ cancellation സഹിതം.

അടങ്ങിയ concurrency

Mutation calls ref.invoke(provider.method()) വഴി concurrent, queue, restart, dropLatest എന്നിവ പിന്തുണയ്ക്കുന്നു.

ശുപാർശ ചെയ്യുന്ന ആരംഭ പാത

നിങ്ങളുടെ ആപ്പിനെ ProviderScope ഉപയോഗിച്ച് മൂടി, Provider/AsyncProvider ക്ലാസുകൾ നിർവചിച്ച്, ref.invoke മുഖേന വ്യക്തമായ concurrency-യോടെ state updates നടത്തുക.

ഇൻസ്റ്റലേഷൻ

flutter pub add miniriverpod

മ്യൂട്ടേഷൻ + ഇൻവോക്ക്

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'));
സാദൃശ്യമുറിപാട് കുറിപ്പ്

miniriverpod ഉദ്ദേശപൂർവ്വം Provider + AsyncProvider + WidgetRef Riverpod-ന് അടുത്തതാണ്, പക്ഷേ codegen-heavy മാർഗങ്ങളെ subclass + args, Scope-based injection, വ്യക്തമായ mutation calls എന്നിവ കൊണ്ട് മാറ്റിസ്ഥാപിക്കുന്നു.