Junior
Flutter'da Provider ne işe yarar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Provider, Flutter uygulamalarında durumu yönetmek için kullanılır. Verilere erişimi ve bunların widget ağacı boyunca yayılmasını kolaylaştırır. Provider, kalıtılan widget'lar (InheritedWidget) konseptine dayanır, ancak daha kullanışlı ve hafif bir API sunar.
Ana avantajlar:
- Kullanım kolaylığı: Veri oluşturma, sağlama ve tüketme için sezgisel API.
- Verimlilik: InheritedWidget sayesinde, yalnızca verilere doğrudan bağlı olan widget'lar, veriler değiştiğinde yeniden oluşturulur.
- Test edilebilirlik: Birim testleri sırasında sağlayıcıların kolayca değiştirilebilir olması.
- Kod organizasyonu: İş mantığını ve UI'yi ayırmaya yardımcı olur.
- Ölçeklenebilirlik: Hem küçük hem de büyük projeler için uygundur.
Kullanım durumları:
- Kullanıcı verilerine erişim (örneğin, kimlik doğrulama).
- Uygulama genel ayarları.
- Sepet durumu.
- Ağ veya veritabanı verileri.
ChangeNotifierProvider kullanımı örneği:
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
// Değişiklikleri izleyen sınıf
class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners(); // Dinleyicilere değişiklik hakkında bildirim
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider( // Counter örneği sağlar
create: (context) => Counter(),
child: Consumer<Counter>( // Counter örneğini tüketir
builder: (context, counter, child) {
return Text('Count: ${counter.count}');
},
),
);
}
}