Ποια είναι η διαφορά μεταξύ των components StreamBuilder και Future κατά την εργασία με ασύγχρονα δεδομένα στο Flutter;
sobes.tech AI
Απάντηση από AI
Στο Flutter, FutureBuilder και StreamBuilder χρησιμοποιούνται για εργασία με ασύγχρονα δεδομένα, αλλά διαφέρουν ως προς τον τύπο της πηγής δεδομένων:
-
FutureBuilder λειτουργεί με ένα αντικείμενο
Future— είναι μια μονομερής ασύγχρονη λειτουργία που επιστρέφει ένα αποτέλεσμα ή ένα σφάλμα. Για παράδειγμα, φόρτωση δεδομένων από διακομιστή. -
StreamBuilder λειτουργεί με ένα
Stream— είναι ένα ρεύμα δεδομένων που μπορεί να εκπέμψει πολλά γεγονότα με την πάροδο του χρόνου. Για παράδειγμα, ενημερώσεις δεδομένων σε πραγματικό χρόνο ή γεγονότα εισόδου χρήστη.
Παράδειγμα χρήσης του FutureBuilder:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Σφάλμα: \\${snapshot.error}');
} else {
return Text('Δεδομένα: \\${snapshot.data}');
}
},
)
Παράδειγμα χρήσης του StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Μετρητής: \\${snapshot.data}');
},
)
Επομένως, επιλέξτε FutureBuilder για μονομερείς λειτουργίες και StreamBuilder για ρεύματα δεδομένων.