Sobes.tech
Junior — Middle

V čom sa líšia komponenty StreamBuilder a Future pri práci s asynchrónnymi dátami vo Flutteri?

sobes.tech AI

Odpoveď od AI

Vo Flutteri sa FutureBuilder a StreamBuilder sa používajú na prácu s asynchrónnymi dátami, ale líšia sa podľa typu zdroja dát:

  • FutureBuilder pracuje s objektom Future — je to jednorazová asynchrónna operácia, ktorá vráti výsledok alebo chybu. Napríklad načítanie dát zo servera.

  • StreamBuilder pracuje so Stream — je to tok dát, ktorý môže emitovať viacero udalostí v čase. Napríklad aktualizácie dát v reálnom čase alebo udalosti vstupu používateľa.

Príklad použitia FutureBuilder:

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

Príklad použitia StreamBuilder:

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

Preto, vyberte FutureBuilder pre jednorazové operácie a StreamBuilder pre prúdové dáta.