ផ្លូវអាន: watch, read និង listen។

Provider ផ្តល់ state សមកាលកម្ម។ AsyncProvider ត្រឡប់ AsyncValue និងអាច expose Future និង Stream ដោយមាន lifecycle handling តឹងរឹង។

ប្រភេទ Provider

ជ្រើស type provider តាម source ទិន្នន័យ និង frequency នៃការធ្វើបច្ចុប្បន្នភាព។

Provider<T>

តម្លៃសមកាលកម្ម និង state ដកស្រង់ក្នុងតំបន់

AsyncProvider<T>

state ដែលបើកដំណើរការដោយ Future/Stream ជា AsyncValue<T>

provider.future

selector ដែលបង្ហាញ Provider<Future<T>>

ជំនួយ

ប្រសិនបើ state មកពី network ឬ stream សូមជ្រើស AsyncProvider មុន។ ទុក Provider សម្រាប់ logic សមកាលកម្មសុទ្ធ។

តារាង API អាន

ប្រើ watch ក្នុង build paths, read សម្រាប់ one-shot access និង 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);
ref.emit(stream) លុបចោល subscription មុន នៅពេល rebuild, invalidate និង dispose។
AsyncValue គឺជា sealed class: AsyncLoading / AsyncData / AsyncError។
pattern matching ជាមួយ switch ធ្វើឱ្យ loading/error UI ច្បាស់លាស់។

ជំហានបន្ទាប់

Mutations

ផ្ទេរប្រតិបត្តិការ write ទៅក្នុង provider methods ហើយដំណើរការវាតាម ref.invoke។

បើក Mutations

Flutter API

ជ្រើសរើសរវាង Consumer, ConsumerWidget និង ConsumerStatefulWidget។

បើក API Reference