Ergonómia v štýle Riverpodu s explicitným správaním za behu.

miniriverpod zachováva známe Provider a AsyncProvider, ale správanie zúžuje na explicitné API: subclass + args pre identitu podobnú family, mutation tokeny pre aktualizácie a predvídateľné uvoľňovanie životného cyklu.

Bez generovania kódu

Providery podobné family, overrides a dependency injection sú modelované cez subclass + args + Scope bez generovania kódu.

Zjednotený asynchrónny model

Jediný AsyncProvider spracúva Future aj Stream, s prísnym rušením pri rebuild, invalidate, refresh a dispose.

Built-in Concurrency

Volania mutation podporujú concurrent, queue, restart a dropLatest cez ref.invoke(provider.method()).

Odporúčaný postup zavedenia

Naučte sa integrovať miniriverpod do Flutter projektu za pár minút.

Inštalácia

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 zámerne zachováva Provider + AsyncProvider + WidgetRef blízko Riverpodu, ale nahrádza cesty závislé od codegenu cez subclass + args, injekciu na báze Scope a explicitné mutation volania.

Predchádzajúce

Open Source