Sobes.tech
Junior — Middle

Дар Flutter, компонентҳои StreamBuilder ва Future дар кор бо маълумоти асинхронӣ чӣ фарқ доранд?

sobes.tech AI

Ҷавоб аз AI

Дар Flutter, FutureBuilder ва StreamBuilder барои кор бо маълумоти асинхронӣ истифода мешаванд, аммо дар навъҳои манбаи маълумот фарқ мекунанд:

  • FutureBuilder бо объекти Future кор мекунад — ин як амалиёти асинхронӣ яккарата аст, ки натиҷа ё хато меорад. Масалан, боркунии маълумот аз сервер.

  • StreamBuilder бо Stream кор мекунад — ин як ҷараёни маълумот аст, ки метавонад дар вақти муайян чандин ҳодиса барорад. Масалан, навсозии маълумот дар вақти воқеӣ ё ҳодисаҳои воридоти корбар.

Маслиҳати истифодаи FutureBuilder:

FutureBuilder<String>(
  future: fetchData(),
  builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.waiting) {
      return CircularProgressIndicator();
    } else if (snapshot.hasError) {
      return Text('Хатогӣ: \\${snapshot.error}');
    } else {
      return Text('Маълумот: \\${snapshot.data}');
    }
  },
)

Маслиҳати истифодаи StreamBuilder:

StreamBuilder<int>(
  stream: counterStream(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return CircularProgressIndicator();
    }
    return Text('Ҳисобкунак: \\${snapshot.data}');
  },
)

Аз ин рӯ, барои амалиёти яккарата FutureBuilder-ро интихоб кунед ва барои маълумоти ҷараёнӣ StreamBuilder-ро.