Sobes.tech
Junior — Middle

Quelle est la différence entre les composants StreamBuilder et Future lors de la gestion de données asynchrones dans Flutter?

sobes.tech IA

Réponse de l'IA

En Flutter, FutureBuilder et StreamBuilder sont utilisés pour travailler avec des données asynchrones, mais diffèrent par le type de source de données:

  • FutureBuilder fonctionne avec un objet Future — c'est une opération asynchrone unique qui renvoie un résultat ou une erreur. Par exemple, charger des données depuis un serveur.

  • StreamBuilder fonctionne avec un Stream — c'est un flux de données qui peut émettre plusieurs événements au fil du temps. Par exemple, des mises à jour de données en temps réel ou des événements d'entrée utilisateur.

Exemple d'utilisation de FutureBuilder:

FutureBuilder<String>(
  future: fetchData(),
  builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.waiting) {
      return CircularProgressIndicator();
    } else if (snapshot.hasError) {
      return Text('Erreur: \\${snapshot.error}');
    } else {
      return Text('Données: \\${snapshot.data}');
    }
  },
)

Exemple d'utilisation de StreamBuilder:

StreamBuilder<int>(
  stream: counterStream(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return CircularProgressIndicator();
    }
    return Text('Compteur: \\${snapshot.data}');
  },
)

Ainsi, choisissez FutureBuilder pour des opérations ponctuelles et StreamBuilder pour des flux de données.