ဖတ်ရှုလမ်းကြောင်းများ: watch, read နှင့် listen။
Provider သည် synchronous state ပေးသည်။ AsyncProvider သည် AsyncValue ကို ပြန်ပေးပြီး strict 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>> ကို expose လုပ်သော selector
အကြံပြုချက်
state သည် network သို့မဟုတ် stream မှလာလျှင် အရင် AsyncProvider ကို ရွေးပါ။ Provider ကို pure synchronous logic အတွက် ထားပါ။
ဖတ်ရှု API matrix
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);
နောက်တစ်ဆင့်များ
Mutations
write operations ကို provider methods ထဲသို့ ရွှေ့ပြီး ref.invoke ဖြင့် လုပ်ဆောင်ပါ။
Flutter API ဖွင့်ရန်Flutter API
Consumer, ConsumerWidget, နှင့် ConsumerStatefulWidget အကြား ရွေးချယ်ပါ။
API Reference ဖွင့်ရန်