Riverpod
Riverpod Provider-in müəllifi tərəfindən yazılıb və məqsədi Provider-in dörd əsas problemini həll etməkdir:
- Compile-time təhlükəsizlik — provider qlobal dəyişəndir, ağacda "tapılmama" xətası olmur
- Context-siz oxuma — vəziyyətə widget ağacından kənarda da çatmaq olur
- Tipdən asılı olmama — eyni tipdən istənilən qədər provider ola bilər
- Kompozisiya — bir provider başqasını
ref.watchilə oxuya bilər və asılılıq avtomatik izlənir
Widget tərəfdə ConsumerWidget istifadə olunur və build metoduna əlavə WidgetRef ref parametri gəlir.
Provider növləri işin xarakterinə görə seçilir:
- `Provider` — dəyişməyən dəyər və ya servis (məs. repository)
- `StateProvider` — sadə dəyişən dəyər (filter, seçilmiş tab)
- `FutureProvider` — bir dəfəlik async yükləmə;
AsyncValueqaytarır - `StreamProvider` — davamlı axın
- `NotifierProvider` / `AsyncNotifierProvider` — mürəkkəb vəziyyət və biznes məntiqi
AsyncValue xüsusilə faydalıdır: yüklənir/data/xəta üç halını bir tipdə birləşdirir və when() ilə üçünü də idarə etməyə məcbur edir — unudulmuş error state problemi aradan qalxır.
Interview ipucu. Riverpod-un ən güclü satış arqumenti AsyncValue-dur və bunu nümunə ilə göstərmək təsirlidir: Provider-də loading/error state-lərini əl ilə bool isLoading və String? error sahələri ilə idarə edirsən və biri unudulur; AsyncValue.when isə üç halı da tələb edir. "Compile-time təhlükəsizlik" ifadəsini işlədəndə də konkret ol: provider qlobal olduğu üçün ProviderNotFoundException kimi runtime xətası mümkün deyil.
📚 Mənbələr və sənədlər
- flutter_riverpod paketirəsmipub.dev
- Riverpod sənədləririverpod.dev
Provider növlərinin seçim bələdçisi və Provider-dən miqrasiya təlimatı burada.
- State management variantlarırəsmidocs.flutter.dev