- Controlled component: giá trị form được kiểm soát bởi React state, phải có onChange handler, phù hợp khi cần validation hay transform dữ liệu.
- Uncontrolled component: giá trị lưu trong DOM, dùng ref để đọc, đơn giản hơn cho form không cần real-time validation.
React khuyến nghị Controlled trong hầu hết trường hợp.