Junior — Middle
Wat is het verschil tussen de componenten StreamBuilder en Future bij het werken met asynchrone gegevens in Flutter?
sobes.tech AI
Antwoord van AI
In Flutter worden FutureBuilder en StreamBuilder gebruikt om te werken met asynchrone gegevens, maar ze verschillen in het type gegevensbron:
-
FutureBuilder werkt met een
Futureobject — het is een eenmalige asynchrone operatie die een resultaat of fout teruggeeft. Bijvoorbeeld het laden van gegevens van een server. -
StreamBuilder werkt met een
Stream— het is een gegevensstroom die meerdere gebeurtenissen in de loop van de tijd kan uitzenden. Bijvoorbeeld realtime gegevensupdates of gebruikersinvoer gebeurtenissen.
Voorbeeld van het gebruik van FutureBuilder:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Fout: \\${snapshot.error}');
} else {
return Text('Gegevens: \\${snapshot.data}');
}
},
)
Voorbeeld van het gebruik van StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Teller: \\${snapshot.data}');
},
)
Dus, kies FutureBuilder voor eenmalige operaties en StreamBuilder voor stroomgegevens.