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 тандаңыз.