class
là một từ khóa trong javascript và JSX là một phần mở rộng của javascript. Đó là lý do chính tại sao React sử dụng className
thay vì class
.
Không có gì thay đổi trong vấn đề đó.
Để mở rộng điều này nhiều hơn một chút. Một từ khóa có nghĩa rằng một mã thông báo có một ý nghĩa đặc biệt trong một cú pháp ngôn ngữ. Ví dụ trong:
class MyClass extends React.Class {
Mã class
thông báo biểu thị rằng mã thông báo tiếp theo là một định danh và những gì tiếp theo là một khai báo lớp. Xem Từ khóa Javascript + Từ dành riêng .
Thực tế là mã thông báo là một từ khóa có nghĩa là chúng ta không thể sử dụng nó trong một số biểu thức, ví dụ:
const props = {
class: 'css class'
}
const props = {
'class': 'css class'
};
var class = 'css';
var clazz = 'css';
props.class = 'css';
props['class'] = 'css';
Một trong những vấn đề là không ai có thể biết liệu một số vấn đề khác sẽ không phát sinh trong tương lai hay không. Mọi ngôn ngữ lập trình vẫn đang phát triển và class
thực sự có thể được sử dụng trong một số cú pháp xung đột mới.
Không có vấn đề như vậy tồn tại với className
.