Sobes.tech
Junior — Middle

Flutter-də asinxron məlumatlarla işləyərkən StreamBuilder və Future komponentləri arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Flutter-də FutureBuilderStreamBuilder asinxron məlumatlarla işləmək üçün istifadə olunur, lakin onlar məlumat mənbəyinin növünə görə fərqlənir:

  • FutureBuilder Future obyektilə işləyir — bu, bir dəfəlik asinxron əməliyyatdır və nəticə və ya xəta ilə geri dönür. Məsələn, serverdən məlumat yükləmək.

  • StreamBuilder Stream ilə işləyir — bu, zamanla çoxsaylı hadisələr çıxara bilən məlumat axınıdır. Məsələn, real vaxt məlumat yeniləmələri və ya istifadəçi giriş hadisələri.

FutureBuilder istifadə nümunəsi:

FutureBuilder<String>(
  future: fetchData(),
  builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.waiting) {
      return CircularProgressIndicator();
    } else if (snapshot.hasError) {
      return Text('Xəta: \\${snapshot.error}');
    } else {
      return Text('Məlumatlar: \\${snapshot.data}');
    }
  },
)

StreamBuilder istifadə nümunəsi:

StreamBuilder<int>(
  stream: counterStream(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return CircularProgressIndicator();
    }
    return Text('Sayğac: \\${snapshot.data}');
  },
)

Buna görə də, tək seferlik əməliyyatlar üçün FutureBuilder, axın məlumatları üçün isə StreamBuilder seçin.