Junior — Middle
Care este diferența dintre componentele StreamBuilder și Future atunci când lucrați cu date asincrone în Flutter?
sobes.tech AI
Răspuns de la AI
În Flutter, FutureBuilder și StreamBuilder sunt utilizate pentru a lucra cu date asincrone, dar diferă în funcție de tipul sursei de date:
-
FutureBuilder lucrează cu un obiect
Future— este o operație asincronă unică care returnează un rezultat sau o eroare. De exemplu, încărcarea datelor de pe un server. -
StreamBuilder lucrează cu un
Stream— este un flux de date care poate emite multiple evenimente în timp. De exemplu, actualizări de date în timp real sau evenimente de introducere a utilizatorului.
Exemplu de utilizare a FutureBuilder:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Eroare: \\${snapshot.error}');
} else {
return Text('Date: \\${snapshot.data}');
}
},
)
Exemplu de utilizare a StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Contor: \\${snapshot.data}');
},
)
Prin urmare, alegeți FutureBuilder pentru operații unice și StreamBuilder pentru date în flux.