Junior — Middle
V čem se liší komponenty StreamBuilder a Future při práci s asynchronními daty ve Flutteru?
sobes.tech AI
Odpověď od AI
Ve Flutteru se FutureBuilder a StreamBuilder používají k práci s asynchronními daty, ale liší se podle typu zdroje dat:
-
FutureBuilder pracuje s objektem
Future— je to jednorázová asynchronní operace, která vrací výsledek nebo chybu. Například načítání dat ze serveru. -
StreamBuilder pracuje se
Stream— je to datový proud, který může v čase emitovat více událostí. Například aktualizace dat v reálném čase nebo události uživatelského vstupu.
Příklad použití 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('Data: \\${snapshot.data}');
}
},
)
Příklad použití StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Čítač: \\${snapshot.data}');
},
)
Proto, zvolte FutureBuilder pro jednorázové operace a StreamBuilder pro proudová data.