Sobes.tech
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 Future nesnesiyle ç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 Stream ile ç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.