Junior — Middle
Kāda ir atšķirība starp StreamBuilder un Future komponentiem, strādājot ar asinhronajiem datiem Flutter?
sobes.tech AI
Atbilde no AI
Flutterā FutureBuilder un StreamBuilder tiek izmantoti ar asinhroniem datiem, bet tie atšķiras pēc datu avota veida:
-
FutureBuilder darbojas ar
Futureobjektu — tas ir vienreizējs asinhrons process, kas atgriež rezultātu vai kļūdu. Piemēram, datu ielāde no servera. -
StreamBuilder darbojas ar
Stream— tas ir datu plūsma, kas var emitēt vairākus notikumus laikā. Piemēram, reāllaika datu atjauninājumi vai lietotāja ievades notikumi.
FutureBuilder piemērs:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Kļūda: \\${snapshot.error}');
} else {
return Text('Dati: \\${snapshot.data}');
}
},
)
StreamBuilder piemērs:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Skaitītājs: \\${snapshot.data}');
},
)
Tādēļ izvēlieties FutureBuilder vienreizējām operācijām un StreamBuilder plūsmas datiem.