- StatelessWidget: không có state nội bộ thay đổi theo thời gian. UI chỉ phụ thuộc vào cấu hình truyền vào (constructor) và
BuildContext. Vẽ một lần, chỉ dựng lại khi cha truyền dữ liệu mới. Ví dụ:Text,Icon. - StatefulWidget: có state có thể đổi trong vòng đời. Bản thân widget vẫn bất biến, nhưng nó tạo một đối tượng
State(quacreateState()) giữ dữ liệu thay đổi; gọisetState()để báo cần dựng lại. Ví dụ: checkbox, form, animation.
Quy tắc thực dụng: mặc định dùng Stateless; chỉ nâng lên Stateful khi cần lưu trạng thái cục bộ (ephemeral state) mà không muốn đẩy lên state management ngoài.