पढ्ने बाटोहरू: 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>> 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 खोल्नुहोस्