Sobes.tech
Junior — Middle

Milline on erinevus StreamBuilder ja Future komponentide vahel, töötades asünkroonsete andmetega Flutteris?

sobes.tech AI

Vastus AI-lt

Flutteris kasutatakse FutureBuilder ja StreamBuilder tööks asünkroonsete andmetega, kuid need erinevad andmeallika tüübi poolest:

  • FutureBuilder töötab Future objekti abil — see on ühekordne asünkroonne operatsioon, mis tagastab tulemuse või vea. Näiteks andmete laadimine serverist.

  • StreamBuilder töötab Stream-iga — see on andmevoog, mis võib aja jooksul saata mitu sündmust. Näiteks reaalajas andmete uuendused või kasutaja sisestusüritused.

FutureBuilder kasutamise näide:

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

StreamBuilder kasutamise näide:

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

Seega valige FutureBuilder ühekordsete operatsioonide jaoks ja StreamBuilder voogedastatavate andmete jaoks.