वाचन मार्ग: watch, read आणि listen.

Provider synchronous state देतो. AsyncProvider AsyncValue परत करतो आणि कठोर lifecycle handling सह Future आणि Stream देऊ शकतो.

Provider प्रकार

data source आणि update frequency नुसार provider type निवडा.

Provider<T>

Synchronous values आणि local derived state

AsyncProvider<T>

Future/Stream-चालित state म्हणून AsyncValue<T>

provider.future

Provider<Future<T>> उघड करणारा selector

सूचना

state network किंवा stream मधून येत असल्यास, आधी AsyncProvider निवडा. Provider ला pure synchronous logic साठी ठेवा.

वाचन API मॅट्रिक्स

build paths मध्ये watch, one-shot access साठी read, आणि side effects साठी 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 Future परत करू शकतो किंवा ref.emit(stream) द्वारे 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 वेळी मागील subscription रद्द करते.
AsyncValue एक sealed class आहे: AsyncLoading / AsyncData / AsyncError.
switch सोबत pattern matching loading/error UI स्पष्ट ठेवते.

पुढील पावले

Mutations

write operations provider methods मध्ये हलवा आणि ref.invoke द्वारे चालवा.

Mutations उघडा

Flutter API

Consumer, ConsumerWidget, आणि ConsumerStatefulWidget यांमधून निवडा.

API Reference उघडा