Окуу жолдору: 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 жолдорунда, read-ди бир жолку жетүү үчүн жана listen-ди кошумча таасирлер үчүн колдонуңуз.

Эң көп колдонулган

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);
ref.emit(stream) rebuild, invalidate жана dispose учурунда мурунку жазылууну токтотот.
AsyncValue — sealed class: AsyncLoading / AsyncData / AsyncError.
switch менен pattern matching жүктөө/ката UI-ын ачык кылат.

Кийинки кадамдар

Mutations

Жазуу операцияларын provider ыкмаларына жылдырып, аларды ref.invoke аркылуу аткарыңыз.

Mutations ачуу

Flutter API

Consumer, ConsumerWidget жана ConsumerStatefulWidget ортосунда тандаңыз.

API Reference ачуу