`FutureBuilder` — это виджет во Flutter, который строит UI в зависимости от состояния `Future`. Это основной способ асинхронно загружать данные и отображать результат.
Если `Future` — это обещание, что когда-то придут данные, `FutureBuilder` — это способ показать на экране, что происходит в ожидании и после получения данных.
Основные параметры
future (Future<T>)— обязательный
Асинхронная операция, результат которой будет использован для построения UI.
builder (AsyncWidgetBuilder<T>)— обязательный
Функция, возвращающая виджет на основе текущего состояния Future (`snapshot`).
initialData (T?)
Начальное значение до завершения Future. Может быть полезно для отображения предварительных данных.
Что такое AsyncSnapshot
`FutureBuilder` пересоздаёт Future при каждом перестроении, если вы создаёте Future внутри build(). Лучше передавать готовый Future.
Аспект | FutureBuilder | setState + Future |
---|---|---|
Инкапсуляция | UI и логика в одном месте | Нужно управлять состоянием вручную |
Повторное использование | Легко встраивается как компонент | Подходит для более сложных сценариев |
Обновление UI | Происходит автоматически при завершении Future | Нужно вызывать вручную |