Διαδρομές ανάγνωσης: 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);
Επόμενα βήματα
Mutations
Μεταφέρετε τις λειτουργίες εγγραφής στις μεθόδους του provider και εκτελέστε τες μέσω ref.invoke.
Άνοιγμα MutationsFlutter API
Επιλέξτε ανάμεσα σε Consumer, ConsumerWidget και ConsumerStatefulWidget.
Άνοιγμα API Reference