> Как устроен жизненный цикл виджетов во Flutter (Flutter)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Верме
Стек: Flutter
> Пример ответа
Жизненный цикл виджета во Flutter напрямую зависит от его типа: StatelessWidget (статические) и StatefulWidget (с состоянием).
StatelessWidget живёт от создания до уничтожения. У него только один этап - вызов метода build(), который возвращает дерево дочерних виджетов. Он не может изменяться после сборки.
StatefulWidget имеет более сложный цикл, управляемый объектом State. Основные этапы:
- createState() - вызывается один раз при встраивании виджета в дерево. Создаёт экземпляр
State. - initState() - вызывается сразу после создания
State. Здесь инициализируют подписки, контроллеры, анимации. Нельзя использоватьBuildContextдля вызоваshowDialogилиNavigator. - didChangeDependencies() - вызывается после
initState()и при изменении зависимостей (например, InheritedWidget). Часто используется для загрузки данных. - build() - основной метод, возвращающий виджет. Вызывается многократно при изменениях состояния или родительского виджета.
- didUpdateWidget() - вызывается, когда родитель перестраивает виджет с новыми параметрами. Позволяет реагировать на изменения конфигурации.
- setState() - не этап, а метод, который помечает виджет как грязный и запускает пересборку через
build(). - deactivate() - вызывается при удалении виджета из дерева (например, при переходе на другой экран). Можно отменить подписки.
- dispose() - финальный этап. Освобождает ресурсы: таймеры, контроллеры, слушатели. После вызова
Stateстановится мёртвым.
Важно: build() может вызываться многократно, поэтому он должен быть чистым (без побочных эффектов). Инициализацию и очистку выносят в initState() и dispose() соответственно.
> Похожие задачи по frontend
Что такое оператор ??= в Dart
Какие типы виджетов есть во Flutter
Есть ли опыт работы с Flutter Web
Что такое Flutter Version Manager (FVM)
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью