Sobes.tech
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 Future object — 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.