Junior — Middle
V čom sa líšia komponenty StreamBuilder a Future pri práci s asynchrónnymi dátami vo Flutteri?
sobes.tech AI
Odpoveď od AI
Vo Flutteri sa FutureBuilder a StreamBuilder sa používajú na prácu s asynchrónnymi dátami, ale líšia sa podľa typu zdroja dát:
-
FutureBuilder pracuje s objektom
Future— je to jednorazová asynchrónna operácia, ktorá vráti výsledok alebo chybu. Napríklad načítanie dát zo servera. -
StreamBuilder pracuje so
Stream— je to tok dát, ktorý môže emitovať viacero udalostí v čase. Napríklad aktualizácie dát v reálnom čase alebo udalosti vstupu používateľa.
Príklad použitia FutureBuilder:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Chyba: \\${snapshot.error}');
} else {
return Text('Dáta: \\${snapshot.data}');
}
},
)
Príklad použitia StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Čítač: \\${snapshot.data}');
},
)
Preto, vyberte FutureBuilder pre jednorazové operácie a StreamBuilder pre prúdové dáta.