Какие плюсы и минусы jsx?
Компоненты
JSX — синтаксическое расширение JavaScript для описания UI. Его достоинства и недостатки — это, по сути, цена и выгода «разметки внутри кода».
Плюсы
- Читаемость структуры: код визуально повторяет дерево UI — понятнее, чем вложенные вызовы createElement.
- Полная мощь JavaScript: условия, map, переменные, функции — без шаблонного мини-языка (v-if, *ngFor) и его ограничений.
- Тулинг: TypeScript проверяет пропсы и типы элементов, работают автокомплит, рефакторинг, линтеры; ошибки ловятся на компиляции.
- Логика и разметка рядом: разделение по компонентам, а не по типам файлов — связанное лежит вместе.
- Безопасность: вставляемые значения экранируются — XSS «по умолчанию» невозможен.
- Не привязан к React (Preact, Solid), компилируется в обычные вызовы функций.
Минусы
- Нужна сборка: браузер JSX не понимает — обязателен Babel/TS/esbuild.
- Отличия от HTML: className, htmlFor, camelCase-события, один корневой элемент (Fragment) — при переносе вёрстки нужна конвертация.
- Ловушки выражений:
{count && <Badge/>}рендерит0; вложенные тернарники нечитаемы; комментарии{/* */}. - Шум: условия и списки внутри разметки местами многословнее директив шаблонизаторов; риск компонентов-«простыней» при недисциплинированности.
- Дженерики в TSX требуют обходов; сообщения об ошибках трансформации бывают невнятными.
Коротко для собеседования
Плюсы: структура UI видна в коде, полный JavaScript вместо шаблонного языка, отличная типизация и тулинг, автоэкранирование от XSS. Минусы: обязательный шаг сборки, отличия от HTML (className, один корень), ловушки вроде && с нулём, многословность условий и риск раздутых компонентов.