Riverpod-lignende ergonomi med eksplicit runtime-adfærd.

miniriverpod bevarer Provider og AsyncProvider som noget velkendt, men snævrer adfærden ind til eksplicitte API'er: subclass + args til familie-lignende identitet, mutationstokens til opdateringer og forudsigelig nedlukning af livscyklussen.

Ingen kodegenerering

Familie-lignende providers, overrides og afhængighedsinjektion modelleres med subclass + args + Scope, uden kodegenerering.

Samlet asynkron model

Én AsyncProvider håndterer Future og Stream med streng annullering ved rebuild, invalidate, refresh og dispose.

Built-in Concurrency

Mutationskald understøtter concurrent, queue, restart og dropLatest via ref.invoke(provider.method()).

Anbefalet introduktionsforløb

Pak din app ind med ProviderScope, definér Provider/AsyncProvider-klasser, og kør statusopdateringer gennem ref.invoke med eksplicit samtidighed.

Installer

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 holder bevidst Provider + AsyncProvider + WidgetRef sig tæt på Riverpod, men erstatter kodegenereringstunge stier med subclass + args, Scope-baseret injektion og eksplicitte mutationskald.