Sobes.tech
Junior — Middle

Čime se razlikuju komponente StreamBuilder i Future pri radu sa asinhronim podacima u Flutteru?

sobes.tech АИ

Одговор од АИ

U Flutter-u, FutureBuilder i StreamBuilder se koriste za rad sa asinhronim podacima, ali se razlikuju po tipu izvora podataka:

  • FutureBuilder radi sa objektom Future — to je jednokratna asinhrona operacija koja vraća rezultat ili grešku. Na primer, učitavanje podataka sa servera.

  • StreamBuilder radi sa Stream — to je tok podataka koji može emitovati više događaja tokom vremena. Na primer, ažuriranja podataka u realnom vremenu ili događaji korisničkog unosa.

Primer korišćenja FutureBuilder:

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

Primer korišćenja StreamBuilder:

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

Dakle, izaberite FutureBuilder za jednokratne operacije i StreamBuilder za tokove podataka.