Riverpod nedir?
- Flutter kursu
- Orta seviye
- Ders 11/99
- 4 dk
Riverpod'un Provider'ın güvenli alternatifi olduğunu öğrenirsin.
Riverpod nedir?
Riverpod, Provider paketinin güvenli ve test edilebilir alternatifidir. Provider'ın aksine BuildContext'e bağlı değildir; ref ile her yerden erişilir. Build-time hatalarını azaltır ve dağıtımı zorunlu kılar.
import 'package:flutter_riverpod/flutter_riverpod.dart';Uygulama kökü ProviderScope ile sarılır.
ProviderScope ve ref
ProviderScope uygulamanın kökünü sarmalar ve her provider'ın yaşam döngüsünü yönetir. ref, provider'lara erişmek için kullanılan nesnedir; ref.watch ve ref.read yöntemleriyle kullanılır.
void main() {
runApp(ProviderScope(child: MyApp()));
}Provider'lar en üst seviyede tanımlanır.
Uygulama Riverpod içe aktar ve kök sarmala
flutter_riverpod paketini içe aktar. main'de ProviderScope ile kökü sar. main içinde print('riverpod hazır') çağır.
Başlangıç kodu
import 'package:flutter/material.dart';
// flutter_riverpod paketini içe aktar
void main() {
print('riverpod hazır');
// ProviderScope ile kök sarmala
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(body: Center(child: Text('Merhaba Riverpod'))),
);
}
}Örnek çözüm
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
void main() {
print('riverpod hazır');
runApp(ProviderScope(child: MyApp()));
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(body: Center(child: Text('Merhaba Riverpod'))),
);
}
}Beklenen çıktı
riverpod hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Riverpod, Provider paketine göre hangi avantaja sahiptir?
- Hot reload'u devre dışı bırakır
- Material widget'larını kaldırır
- BuildContext'e bağlı değildir Doğru cevap
- Daha küçük APK üretir
Açıklama: Riverpod BuildContext'e bağlı değildir; ref ile her yerden erişilir. Bu nedenle BuildContext'e bağımlı Provider paketinden daha güvenlidir.
2 ProviderScope ile kök sarmala
void main() {
runApp(____(child: MyApp()));
}
void main() {
runApp(ProviderScope(child: MyApp()));
}
Açıklama: Riverpod'da uygulama kökü ProviderScope ile sarılır; bu, provider'ların yaşam döngüsünü yönetir.
3 Riverpod parçaları
| Kavram | Anlamı |
|---|---|
Riverpod |
Provider'a güvenli alternatif paket |
ProviderScope |
Uygulama kökünü sarmalayan widget |
ref |
Provider'lara erişim nesnesi |
BuildContext'ten bağımsız |
Riverpod'un temel avantajı |