Διαδρομές ανάγνωσης: watch, read και listen.

Το Provider δίνει συγχρονική κατάσταση. Το AsyncProvider επιστρέφει AsyncValue και μπορεί να εκθέσει Future και Stream με αυστηρό χειρισμό του κύκλου ζωής.

Τύποι Provider

Επιλέξτε τύπο provider με βάση την πηγή δεδομένων και τη συχνότητα ενημέρωσης.

Provider<T>

Συγχρονισμένες τιμές και τοπική παραγόμενη κατάσταση

AsyncProvider<T>

Κατάσταση που καθοδηγείται από Future/Stream ως AsyncValue<T>

provider.future

Επιλογέας που εκθέτει Provider<Future<T>>

Συμβουλή

Αν η κατάσταση προέρχεται από δίκτυο ή stream, προτιμήστε πρώτα το AsyncProvider. Κρατήστε το Provider για καθαρά συγχρονική λογική.

Πίνακας API ανάγνωσης

Χρησιμοποιήστε watch στα build paths, read για πρόσβαση μιας χρήσης και listen για side effects.

Πιο συνηθισμένο

watch / read / listen

ref.watch(provider)  : subscribe and rebuild when value changes.
ref.read(provider)   : read current snapshot without subscribing.
container.listen(...) : callback-driven updates; optional fireImmediately.

Future και Stream με το AsyncProvider

Ένα μόνο AsyncProvider μπορεί να επιστρέψει ένα Future ή να συνδέσει ένα Stream μέσω 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);
Το ref.emit(stream) ακυρώνει την προηγούμενη συνδρομή κατά το rebuild, invalidate και dispose.
Το AsyncValue είναι sealed class: AsyncLoading / AsyncData / AsyncError.
Το pattern matching με το switch κρατά το UI φόρτωσης/σφάλματος σαφές.

Επόμενα βήματα

Mutations

Μεταφέρετε τις λειτουργίες εγγραφής στις μεθόδους του provider και εκτελέστε τες μέσω ref.invoke.

Άνοιγμα Mutations

Flutter API

Επιλέξτε ανάμεσα σε Consumer, ConsumerWidget και ConsumerStatefulWidget.

Άνοιγμα API Reference