Junior — Middle
Flutter'da asenkron verilerle çalışırken StreamBuilder ve Future bileşenleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Flutter'da FutureBuilder ve StreamBuilder, asenkron verilerle çalışmak için kullanılır, ancak veri kaynağı türleri açısından farklılık gösterir:
-
FutureBuilder bir
Futurenesnesiyle çalışır — bu, sonucu veya hatayı bir kez döndüren tek seferlik asenkron bir işlemdir. Örneğin, sunucudan veri yükleme. -
StreamBuilder bir
Streamile çalışır — zaman içinde birden fazla olayı yayınlayabilen veri akışıdır. Örneğin, gerçek zamanlı veri güncellemeleri veya kullanıcı giriş olayları.
FutureBuilder kullanım örneği:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Hata: \\${snapshot.error}');
} else {
return Text('Veriler: \\${snapshot.data}');
}
},
)
StreamBuilder kullanım örneği:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Sayaç: \\${snapshot.data}');
},
)
Bu nedenle, tek seferlik işlemler için FutureBuilder, akış verileri için ise StreamBuilder tercih edilmelidir.