Junior — Middle
Flutter'da asinxron ma'lumotlar bilan ishlashda StreamBuilder va Future komponentlari qanday farq qiladi?
sobes.tech AI
AIdan javob
Flutter'da FutureBuilder va StreamBuilder asinxron ma'lumotlar bilan ishlash uchun ishlatiladi, ammo ular ma'lumot manbai turiga ko'ra farq qiladi:
-
FutureBuilder
Futureobyekti bilan ishlaydi — bu bir martalik asinxron operatsiya bo'lib, natija yoki xato bilan yakunlanadi. Masalan, serverdan ma'lumotlarni yuklash. -
StreamBuilder
Streambilan ishlaydi — bu ma'lumotlar oqimi bo'lib, vaqt o'tishi bilan ko'plab voqealarni chiqarishi mumkin. Masalan, real vaqt ma'lumot yangilanishlari yoki foydalanuvchi kiritish voqealari.
FutureBuilder dan foydalanish misoli:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Xato: \\${snapshot.error}');
} else {
return Text('Ma'lumotlar: \\${snapshot.data}');
}
},
)
StreamBuilder dan foydalanish misoli:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Hisoblagich: \\${snapshot.data}');
},
)
Shu sababli, FutureBuilder ni bir martalik operatsiyalar uchun va StreamBuilder ni oqimli ma'lumotlar uchun tanlang.