Açıq runtime davranışı ilə Riverpod üslublu ergonomika.

miniriverpod Provider və AsyncProvider-i tanış saxlayır, amma davranışı açıq API-lərə daraldır: family-yə bənzər identiklik üçün subclass + args, yeniləmələr üçün mutation token-ləri və proqnozlaşdırılan həyat dövrü disposal-u.

Code generation yoxdur

family-yə bənzər provider-lar, override-lər və dependency injection subclass + args + Scope ilə, code generation olmadan modellənir.

Birləşmiş Async model

Tək AsyncProvider Future və Stream-i idarə edir, rebuild, invalidate, refresh və dispose zamanı ciddi ləğvetmə ilə.

Daxili concurrency

Mutation çağırışları ref.invoke(provider.method()) vasitəsilə concurrent, queue, restart və dropLatest rejimlərini dəstəkləyir.

Tövsiyə olunan başlanğıc axını

Tətbiqinizi ProviderScope ilə əhatələyin, Provider/AsyncProvider siniflərini müəyyən edin və state yeniləmələrini açıq concurrency ilə ref.invoke vasitəsilə işlədin.

Quraşdırma

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'));
Uyğunluq qeydi

miniriverpod qəsdən Provider + AsyncProvider + WidgetRef Riverpod-a yaxın qalır, amma codegen-heavy yolları subclass + args, Scope əsaslı injection və açıq mutation çağırışları ilə əvəz edir.