Class 05: Render có điều kiện và danh sách
Khái niệm render có điều kiện trong React
Trong React, bạn có thể hiển thị hoặc ẩn một phần giao diện dựa trên điều kiện logic. Điều này giúp UI linh hoạt hơn theo trạng thái ứng dụng.
Có hai cách phổ biến để render có điều kiện trong JSX:
Sử dụng if-else (ngoài JSX)
Bạn không thể dùng trực tiếp if
bên trong JSX, nhưng có thể viết biến bên ngoài rồi dùng trong JSX.
Sử dụng toán tử 3 ngôi trong JSX
Toán tử 3 ngôi cho phép viết gọn hơn ngay trong JSX:
Hoặc để render một component/element:
Toán tử AND (&&
) trong JSX
&&
) trong JSXDùng để hiển thị khi điều kiện đúng, không hiển thị gì khi sai:
Render danh sách với Array.map()
Array.map()
Để hiển thị nhiều phần tử từ mảng, React thường dùng map
:
Tại sao phải có key
?
key
?key
giúp React nhận biết từng phần tử riêng biệt khi render lại.Giúp tối ưu cập nhật UI, tránh render lại toàn bộ danh sách.
key
nên là giá trị duy nhất, ví dụ:id
hoặcuuid
.Không nên dùng
index
nếu danh sách có thể thay đổi thứ tự hoặc thêm/xóa.
Ví dụ chuẩn hơn với id:
Ví dụ thực tế: Danh sách sản phẩm với toggle hiện/ẩn chi tiết
Giải thích:
Dùng
map
để render danh sách sản phẩm.Dùng
key={product.id}
để React nhận diện từng phần tử.Dùng state
showDetailsId
để lưu id sản phẩm đang hiển thị chi tiết.Khi click vào tên hoặc nút, gọi hàm
toggleDetails
để bật/tắt chi tiết sản phẩm.Dùng toán tử 3 ngôi và điều kiện để render chi tiết khi id trùng.
Bài tập thực hành
Tạo một danh sách học viên với các trường:
id
,name
,age
.Hiển thị danh sách này bằng
map
.Thêm nút "Xem chi tiết" để toggle hiển thị tuổi học viên (tương tự ví dụ sản phẩm).
Dùng toán tử 3 ngôi hoặc AND để render có điều kiện.
Đảm bảo mỗi phần tử có
key
duy nhất.
Last updated