Leespaden: watch, read en listen.
Provider levert synchrone status. AsyncProvider retourneert AsyncValue en kan Future en Stream blootstellen met strikte levenscyclusafhandeling.
Provider-typen
Kies het type provider op basis van databron en updatefrequentie.
Provider<T>
Synchrone waarden en lokale afgeleide status
AsyncProvider<T>
Future/Stream-gestuurde status als AsyncValue<T>
provider.future
Selector die Provider<Future<T>> blootstelt
Tip
Als de status uit het netwerk of een stream komt, geef dan de voorkeur aan AsyncProvider. Houd Provider voor puur synchrone logica.
Lees-API Matrix
Gebruik watch in build-paden, read voor eenmalige toegang en listen voor side effects.
Meest voorkomend
watch / read / listen
ref.watch(provider) : abonneer en rebuild wanneer de waarde verandert.
ref.read(provider) : lees de huidige snapshot zonder te abonneren.
container.listen(...) : updates op basis van callbacks; optioneel fireImmediately.
Future en Stream met AsyncProvider
Een enkele AsyncProvider kan een Future retourneren of een Stream binden via ref.emit(stream).
final currentUser = AsyncProvider<User>((ref) async {
final api = ref.watch(apiProvider);
return api.me();
});
final liveUser = AsyncProvider<User>((ref) {
final stream = ref.watch(apiProvider).live();
ref.emit(stream);
return const User(name: 'Loading...');
}, autoDispose: true, autoDisposeDelay: const Duration(milliseconds: 250));
// Await as Future
final user = await ref.watch(currentUser.future);
Volgende stappen
Mutations
Verplaats schrijfoperaties naar provider-methoden en voer ze uit via ref.invoke.
Open mutations-gids