1. StatelessWidget Đây là những widget không quan tâm đến việc thay đổi, tạo ra 1 lần duy nhất hoặc hiểu cách đơn giản hơn thì đây là widget chỉ nhận khởi tạo có sẵn rồi thực thi nó và không có thay đổi State. Ví dụ như widget Text, Center, MaterialApp, ... Cấu trúc của một StatelessWidget như sau: class MyWidget extends StatelessWidget { MyWidget ({ Key key, this .param,}) : super (key : key); String param; @override Widget build ( BuildContext context) { return Container ( child : Text ( 'Hello guys' ), ); } } Bạn có thể thấy, chúng ta có thể thêm vài tham số vào constructor. Tuy nhiên, hãy nhớ rằng những tham số này sẽ không thay đổi (immutable) ở những lần build sau. Lifecycle của StatelessWidget gồm: Khởi tạo Render widget thông qua build() 2. StatefulWidget Trái ngược với StatelessWidget thì StatefulWidget sẽ xử lí các dữ liệu bên trong nó, lắng nghe những thay đổi, dữ liệu này sẽ liên tục thay đổi (mutable) trong suốt l...