Состояние - это информация, которая (1) может быть прочитана синхронно при построении виджета, а (2) может измениться в течение срока службы виджета. Разработчик виджета несет ответственность за то, чтобы состояние было оперативно уведомлено при изменении такого состояния с помощью State.setState.
Виджет с отслеживанием состояния - это виджет, который описывает часть пользовательского интерфейса, создавая совокупность других виджетов, которые более конкретно описывают пользовательский интерфейс. Процесс построения продолжается рекурсивно до тех пор, пока описание пользовательского интерфейса не станет полностью конкретным (например, полностью состоит из RenderObjectWidgets, которые описывают конкретные RenderObjects).
Виджет с отслеживанием состояния полезен, когда часть пользовательского интерфейса, которую вы описываете, может изменяться динамически, например, из-за наличия внутреннего состояния, управляемого часами, или в зависимости от некоторого состояния системы. Для композиций, которые зависят только от информации о конфигурации в самом объекте и BuildContext, в котором виджет раздувается, рассмотрите возможность использования StatelessWidget.
Сами экземпляры StatefulWidget являются неизменяемыми и хранят свое изменяемое состояние либо в отдельных объектах State, которые создаются методом createState, либо в объектах, на которые это State подписывается, например объектах Stream или ChangeNotifier, ссылки на которые хранятся в конечных полях в StatefulWidget. сам.
Виджет без сохранения состояния - это виджет, который описывает часть пользовательского интерфейса, создавая совокупность других виджетов, которые более конкретно описывают пользовательский интерфейс. Процесс построения продолжается рекурсивно до тех пор, пока описание пользовательского интерфейса не станет полностью конкретным (например, полностью состоит из RenderObjectWidgets, которые описывают конкретные RenderObjects).
Виджет без сохранения состояния полезен, когда описываемая часть пользовательского интерфейса не зависит ни от чего, кроме информации о конфигурации в самом объекте и BuildContext, в котором виджет раздувается. Для композиций, которые могут изменяться динамически, например, из-за наличия внутреннего состояния, управляемого часами, или в зависимости от некоторого состояния системы, рассмотрите возможность использования StatefulWidget.