Junior — Middle
Worin besteht der Unterschied zwischen den Komponenten StreamBuilder und Future bei der Arbeit mit asynchronen Daten in Flutter?
sobes.tech KI
Antwort von AI
In Flutter werden FutureBuilder und StreamBuilder verwendet, um mit asynchronen Daten zu arbeiten, unterscheiden sich jedoch im Typ der Datenquelle:
-
FutureBuilder arbeitet mit einem
Future-Objekt — es ist eine einmalige asynchrone Operation, die ein Ergebnis oder einen Fehler zurückgibt. Zum Beispiel das Laden von Daten von einem Server. -
StreamBuilder arbeitet mit einem
Stream— es ist ein Datenstrom, der im Laufe der Zeit mehrere Ereignisse ausgeben kann. Zum Beispiel Echtzeit-Datenaktualisierungen oder Benutzereingabeereignisse.
Beispiel für die Verwendung von FutureBuilder:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Fehler: \\${snapshot.error}');
} else {
return Text('Daten: \\${snapshot.data}');
}
},
)
Beispiel für die Verwendung von StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Zähler: \\${snapshot.data}');
},
)
Daher wählen Sie FutureBuilder für einmalige Operationen und StreamBuilder für Datenströme.