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.

Indbygget samtidighed

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 + kald

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,
  );
}

// Brugerflade
await ref.invoke(userProvider.rename('Alice'));
Kompatibilitetsnote

miniriverpod holder bevidst Provider + AsyncProvider + WidgetRef sig tæt på Riverpod, men erstatter kodegenereringstunge stier med subclass + args, Scope-baseret injektion og eksplicitte mutationskald.