Riverpod-ähnliche Ergonomie mit explizitem Laufzeitverhalten.
miniriverpod hält Provider und AsyncProvider vertraut, schränkt das Verhalten aber auf explizite APIs ein: subclass + args für familienähnliche Identität, Mutationstokens für Aktualisierungen und vorhersehbares Aufräumen des Lebenszyklus.
Keine Codegenerierung
Familienähnliche Provider, Overrides und Dependency Injection werden mit subclass + args + Scope modelliert, ganz ohne Codegenerierung.
Einheitliches Async-Modell
Ein einzelner AsyncProvider behandelt Future und Stream mit striktem Abbruch bei Rebuild, Invalidate, Refresh und Dispose.
Built-in Concurrency
Mutationsaufrufe unterstützen concurrent, queue, restart und dropLatest über ref.invoke(provider.method()).
Empfohlener Einstiegspfad
Wickeln Sie Ihre App mit ProviderScope ein, definieren Sie Provider/AsyncProvider-Klassen und führen Sie Statusaktualisierungen über ref.invoke mit expliziter Nebenläufigkeit aus.
Installieren
flutter pub add miniriverpod
Mutation + Invoke
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 bleibt bewusst Provider + AsyncProvider + WidgetRef nah an Riverpod, ersetzt aber codegen-lastige Pfade durch subclass + args, Scope-basierte Injektion und explizite Mutationsaufrufe.
Zurück
Open SourceWeiter
Installation