class
- ключевое слово в javascript, а JSX - это расширение javascript. Это основная причина, по которой React использует className
вместо class
.
В этом отношении ничего не изменилось.
Чтобы расширить это еще немного. А ключевое слово означает , что знак имеет особое значение в синтаксисе языка. Например в:
class MyClass extends React.Class {
Токен class
означает, что следующий токен является идентификатором, а то, что следует за ним, является объявлением класса. См. Ключевые слова Javascript + Зарезервированные слова .
Тот факт, что токен является ключевым словом, означает, что мы не можем использовать его в некоторых выражениях, например
const props = {
class: 'css class'
}
const props = {
'class': 'css class'
};
var class = 'css';
var clazz = 'css';
props.class = 'css';
props['class'] = 'css';
Одна из проблем заключается в том, что никто не может знать, не возникнет ли какая-то другая проблема в будущем. Каждый язык программирования все еще развивается, и его class
можно использовать в новом конфликтующем синтаксисе.
Таких проблем нет с className
.