| StatelessWidget Vs StatefulWidget Trong Flutter: Khi Nào Nên Dùng Và Cách Tối Ưu?

Được viết bởi thanhdt vào ngày 01/06/2026 lúc 19:56 | 10 lượt xem

Trong Flutter, mọi thứ đều là Widget. Để thiết kế giao diện hiệu năng cao, tiết kiệm RAM thiết bị, bạn phải nắm rõ sự khác biệt giữa StatelessWidgetStatefulWidget.

1. StatelessWidget: Widget tĩnh không trạng thái

StatelessWidget không lưu trữ bất kỳ trạng thái (State) thay đổi nào trong suốt vòng đời của nó.
* Đặc điểm: Cực kỳ gọn nhẹ, dựng giao diện rất nhanh.
* Khi nào nên dùng: Phù hợp cho các thành phần giao diện tĩnh, không bao giờ thay đổi dữ liệu khi app đang chạy (như Banner hình ảnh, nhãn văn bản Text, biểu tượng Icon).

2. StatefulWidget: Widget động có trạng thái thay đổi

StatefulWidget có khả năng lưu trữ và cập nhật trạng thái động của nó, tự động vẽ lại (re-build) giao diện bất cứ khi nào dữ liệu thay đổi.
* Cơ chế cập nhật: Gọi hàm setState((){}) để báo cho Flutter vẽ lại Widget Tree.
* Khi nào nên dùng: Phù hợp cho các thành phần tương tác động (như form nhập liệu TextField, nút Checkbox chọn, danh sách nhân viên cần thêm/sửa/xóa).

3. Kỹ thuật tối ưu hóa hiệu năng

Hạn chế lạm dụng StatefulWidget ở lớp cha cao nhất. Hãy chia nhỏ Widget thành các phần con tĩnh const StatelessWidget để tránh việc gọi setState làm vẽ lại toàn bộ màn hình gây giật lag app.