В чем основное отличие StreamBuilder
FutureBuilder
.
-
Что использовать и когда использовать?
-
Какие задачи они предназначены для выполнения?
-
Как каждый из них слушает изменения в динамическом списке?
В чем основное отличие StreamBuilder
FutureBuilder
.
Что использовать и когда использовать?
Какие задачи они предназначены для выполнения?
Как каждый из них слушает изменения в динамическом списке?
Оба StreamBuilder
и FutureBuilder
имеют одинаковое поведение: они прослушивают изменения на соответствующем объекте. И активируйте новую сборку, когда они будут уведомлены о новом значении.
Поэтому, в конце концов, их отличия заключаются в том, как объект, который они слушают, работает.
Future
похоже на Promise
в JS или Task
в С#. Они представляют собой асинхронный запрос. Futures
имеют один и только один ответ. Обычное использование Future
- это обработка вызовов HTTP. То, что вы можете слушать в Future
, это состояние. Было ли это сделано, закончилось с успехом или произошла ошибка. Но это так.
Stream
с другой стороны, подобен асинхронному Iterator
в JS. Это может быть ассимилировано до значения, которое может меняться со временем. Обычно это представление веб-сокетов или событий (например, щелчок). При прослушивании Stream
вы получите каждое новое значение, а также, если Stream
имеет ошибку или завершен.
Как каждый из них прослушивает изменения в динамическом списке?
Future
не может слушать переменные изменения. Это одноразовый ответ. Вместо этого вам нужно будет использовать Stream
.
Итак, если я делаю социальные медиа:
Лента новостей (то есть список с сообщениями) должна быть потоковым виджетом?
И если я загружаю страницу профиля в первый раз, я должен использовать будущего строителя?
Должен ли я объединить будущий сборщик для первых загрузок + потоковый сборщик для обновления?
Я не знаю, правильно ли я понял случаи.