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