Sobes.tech
Junior — Middle

Flutterда асинхрондуу маалыматтар менен иштөөдө StreamBuilder жана Future компоненттери кандай айырмаланат?

sobes.tech AI

AIден жооп

Flutterдө FutureBuilder жана StreamBuilder асинхрондуу маалыматтар менен иштөө үчүн колдонулат, бирок алар маалымат булагынын түрүнө жараша айырмаланат:

  • FutureBuilder Future объектисине иштейт — бул бир жолку асинхрондуу операция, ал натыйжа же катаны кайтарат. Мисалы, серверден маалыматтарды жүктөө.

  • StreamBuilder Stream менен иштейт — бул убакыттын өтүшү менен көптөгөн окуяларды чыгара турган маалымат агымы. Мисалы, реалдуу убакыттагы маалымат жаңыртуулары же колдонуучу киргизүү окуялары.

FutureBuilder колдонуу мисалы:

FutureBuilder<String>(
  future: fetchData(),
  builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.waiting) {
      return CircularProgressIndicator();
    } else if (snapshot.hasError) {
      return Text('Катасы: \\${snapshot.error}');
    } else {
      return Text('Маалыматтар: \\${snapshot.data}');
    }
  },
)

StreamBuilder колдонуу мисалы:

StreamBuilder<int>(
  stream: counterStream(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return CircularProgressIndicator();
    }
    return Text('Эсептегич: \\${snapshot.data}');
  },
)

Ошондуктан, бир жолку операциялар үчүн FutureBuilder, агымдуу маалыматтар үчүн StreamBuilder тандаңыз.