ਪੜ੍ਹਨ ਦੇ ਰਾਹ: watch, read ਅਤੇ listen।

Provider synchronous state ਦਿੰਦਾ ਹੈ। AsyncProvider AsyncValue ਵਾਪਸ ਕਰਦਾ ਹੈ ਅਤੇ ਸਖ਼ਤ lifecycle handling ਨਾਲ Future ਅਤੇ Stream ਪੇਸ਼ ਕਰ ਸਕਦਾ ਹੈ।

Provider ਕਿਸਮਾਂ

data source ਅਤੇ update frequency ਦੇ ਅਧਾਰ ਤੇ provider type ਚੁਣੋ।

Provider<T>

ਸਿੰਕ੍ਰੋਨਸ values ਅਤੇ local derived state

AsyncProvider<T>

Future/Stream-ਅਧਾਰਿਤ state ਵਜੋਂ AsyncValue<T>

provider.future

Provider<Future<T>> expose ਕਰਨ ਵਾਲਾ 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 ਰਾਹੀਂ ਚਲਾਓ।

Flutter API ਖੋਲ੍ਹੋ

Flutter API

Consumer, ConsumerWidget, ਅਤੇ ConsumerStatefulWidget ਵਿਚੋਂ ਚੁਣੋ।

API Reference ਖੋਲ੍ਹੋ