Sobes.tech
Junior — Middle

V čem se liší komponenty StreamBuilder a Future při práci s asynchronními daty ve Flutteru?

sobes.tech AI

Odpověď od AI

Ve Flutteru se FutureBuilder a StreamBuilder používají k práci s asynchronními daty, ale liší se podle typu zdroje dat:

  • FutureBuilder pracuje s objektem Future — je to jednorázová asynchronní operace, která vrací výsledek nebo chybu. Například načítání dat ze serveru.

  • StreamBuilder pracuje se Stream — je to datový proud, který může v čase emitovat více událostí. Například aktualizace dat v reálném čase nebo události uživatelského vstupu.

Příklad použití 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('Data: \\${snapshot.data}');
    }
  },
)

Příklad použití StreamBuilder:

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

Proto, zvolte FutureBuilder pro jednorázové operace a StreamBuilder pro proudová data.