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

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-ге ауыр жолдарды subclass + args, Scope-негізді injection және айқын mutation шақыруларымен алмастырады.

Алдыңғы

Open Source

Келесі

Орнату