Унших замууд: watch, read, listen.
Provider нь синхрон төлөв өгдөг. AsyncProvider нь AsyncValue буцааж, хатуу lifecycle удирдлагатайгаар Future ба Stream санал болгож чадна.
Provider төрлүүд
Provider төрлийг өгөгдлийн эх үүсвэр ба шинэчлэлтийн давтамжаар сонго.
Provider<T>
Синхрон утга болон орон нутгийн derived төлөв
AsyncProvider<T>
Future/Stream-ээр удирдагдсан төлөв AsyncValue<T> хэлбэрээр
provider.future
Provider<Future<T>>-г ил гаргадаг selector
Зөвлөмж
Төлөв сүлжээ эсвэл stream-ээс ирвэл эхлээд AsyncProvider-ийг сонго. Provider-ийг цэвэр синхрон логикт үлдээгээрэй.
Унших API матриц
watch-ыг build замд, read-ийг нэг удаагийн хандалтад, listen-ийг side effect-д ашиглаарай.
Хамгийн түгээмэл
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.
AsyncProvider-тэй Future ба Stream
Нэг AsyncProvider ref.emit(stream) ашиглан Future буцаах эсвэл 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-ээр ажиллуул.
Mutations нээх