JSX позволяет вставлять атрибуты в HTML-элементы, но существуют несколько важных отличий.
class = className
Атрибут class широко используется в HTML, но поскольку JSX компилируется в JavaScript, а class является зарезервированным ключевым словом в JavaScript, его нельзя использовать в JSX.
JSX решил эту проблему, заменив class на className. При рендеринге JSX атрибут className автоматически преобразуется в class.
Пример
Используйте атрибут className вместо class в JSX:
function Car() {
  return (
    <h1 className="myclass">Hello World</h1>
  );
}
Выражения как атрибуты
Значения атрибутов в JSX могут быть представлены в виде JavaScript-выражений. Это особенно полезно для динамического задания атрибутов.
Пример
Используйте JavaScript-выражения в качестве значений атрибутов:
function Car() {
  const x = "myclass";
  return (
    <h1 className={x}>Hello World</h1>
  );
}
Значение атрибута не должно быть заключено в кавычки, что важно при использовании выражений (JavaScript-переменных). Если вы заключите значение в кавычки, JSX воспримет его как строку, а не как JavaScript-выражение.
Атрибуты событий в camelCase
Атрибуты событий в JSX записываются в стиле camelCase.
Пример
Используйте camelCase для атрибутов событий:
function Car() {
  const myfunc = () => {
    alert('Hello World');
  };
  return (
    <button onClick={myfunc}>Click me</button>
  );
}
Булевы атрибуты
Если атрибут передан без значения, JSX трактует его как true. Чтобы передать false, необходимо явно указать это в виде выражения.
Пример
Булево значение true в JSX, кнопка будет неактивна:
<button onClick={myfunc} disabled>Click me</button>
Пример
То же самое значение true, кнопка будет неактивна:
<button onClick={myfunc} disabled={true}>Click me</button>
Пример
Значение false в JSX, кнопка будет активной:
<button onClick={myfunc} disabled={false}>Click me</button>
Атрибут style
Атрибут style в JSX принимает объект JavaScript с CSS-свойствами, записанными в camelCase, а не строку CSS (как в обычном HTML).
Пример
Использование атрибута style:
function Car() {
  const mystyles = {
    color: "red",
    fontSize: "20px",
    backgroundColor: "lightyellow",
  };
  return (
    <>
      <h1 style={mystyles}>My car</h1>
    </>
  );
}
Обратите внимание на два аспекта в примере выше:
- Стили хранятся в объекте.
- Свойства стилей записаны в camelCase, например, fontSizeвместоfont-size.
Это важное отличие между обычным HTML и JSX.