Junior — Middle
Ինչ է տարբերությունը StreamBuilder և Future կոմպոնենտների միջև՝ աշխատելիս ասինխրոն տվյալների հետ Flutter-ում?
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՝ հոսքային տվյալների համար։