વાંચન માર્ગો: watch, read અને listen.

Provider synchronous state આપે છે. AsyncProvider AsyncValue પાછું આપે છે અને કડક lifecycle handling સાથે Future અને Stream expose કરી શકે છે.

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 વડે ચલાવો.

Mutations ખોલો

Flutter API

Consumer, ConsumerWidget, અને ConsumerStatefulWidget વચ્ચે પસંદ કરો.

API Reference ખોલો