classjest słowem kluczowym w javascript, a JSX jest rozszerzeniem javascript. To jest główny powód, dla którego React używa classNamezamiast class.
W tym zakresie nic się nie zmieniło.
Aby to nieco rozszerzyć. Słowo kluczowe oznacza, że token ma specjalne znaczenie w składni języka. Na przykład w:
class MyClass extends React.Class {
Token classoznacza, że następny token jest identyfikatorem, a co następuje to deklaracja klasy. Zobacz Słowa kluczowe JavaScript + słowa zastrzeżone .
Fakt, że token jest słowem kluczowym oznacza, że nie możemy go używać w niektórych wyrażeniach, np
const props = {
class: 'css class'
}
const props = {
'class': 'css class'
};
var class = 'css';
var clazz = 'css';
props.class = 'css';
props['class'] = 'css';
Jednym z problemów jest to, że nikt nie może wiedzieć, czy w przyszłości nie pojawi się inny problem. Każdy język programowania wciąż się rozwija i classmoże być używany w nowej, sprzecznej składni.
Nie ma takich problemów className.