Sparround

FutureBuilder, StreamBuilder və alternativləri

FutureBuilderStreamBuilder async datanı birbaşa widget ağacında göstərmək üçündür: snapshot obyekti vəziyyəti daşıyır (connectionState, hasData, hasError).

Onların ən böyük tələsi budur: build metodunun içində future yaratsan, hər rebuild-də yeni sorğu göndərilir.

``` // yox: hər rebuild yeni sorğu FutureBuilder(future: api.load(), ...)

// bəli: future bir dəfə yaradılır late final _future = api.load(); FutureBuilder(future: _future, ...) ```

Bu səhv çox vaxt gec aşkarlanır, çünki ekran işləyir — sadəcə arxada onlarla sorğu gedir.

VasitəUyğun olduğu halZəifliyi
`FutureBuilder`Bir dəfəlik yükləmə, sadə ekranFuture-un yenidən yaradılması tələsi; retry əlverişsizdir
`StreamBuilder`Davamlı axın: real-vaxt data, bildirişlərSubscription ömrünə diqqət lazımdır
State management (Riverpod/Bloc)Retry, cache, paylaşılan vəziyyətƏlavə qat və qurulma xərci

Interview ipucu. "FutureBuilder nə vaxt istifadə edirsən?" sualının güclü cavabı sərhədi göstərir: sadə, bir dəfəlik yükləmə üçün — bəli; retry, cache, paylaşılan vəziyyət və ya bir neçə ekrandan istifadə lazımdırsa — state management. Tələni də mütləq qeyd et: future build içində yaradılırsa, hər rebuild yeni sorğudur. Bu detalı deyən namizəd real təcrübəni göstərir.

📚 Mənbələr və sənədlər