PassFront
  1. PassFront
  2. База знаний
  3. Основы HTML

В чем разница между JSX и HTML?

Основы HTML

JSX выглядит как HTML, но это синтаксис JavaScript: каждый тег компилируется в вызов функции (React.createElement или jsx()).

Главные отличия

  • Атрибуты в camelCase и по именам DOM-свойств: className вместо class, htmlFor вместо for, onClick вместо onclick, tabIndex.
  • Выражения в фигурных скобках: {user.name}, {items.map(...)}.
  • `style` — объект: style={{ marginTop: 8 }}.
  • Все теги закрываются: <img />, <br />.
  • Один корневой элемент — или фрагмент <>…</>.
  • Обработчики — функции, а не строки: onClick={handleClick}.
  • Безопасность: строки в {} экранируются, поэтому вставить HTML случайно нельзя.
<label htmlFor="email" className="label">
  Email: {user.email}
</label>

Коротко для собеседования

JSX — синтаксис JavaScript, похожий на HTML: атрибуты в camelCase (className, htmlFor), выражения в {}, style объектом, все теги закрыты, строки экранируются.

Подробнее: React — Writing Markup with JSX

Другие вопросы раздела