JSX означает JavaScript XML. Мы используем JSX для написания HTML в нашем приложении React. JSX позволяет нам писать HTML-подобный синтаксис в приложениях React, что делает код читабельным и понятным, а код имеет больше смысла.

Этот JavaScript XML, также известный как JSX, помогает нам добавлять элементы HTML в JavaScript и помещать их в объектную модель документа или DOM без написания методов createElement() или appendChild(). Преобразование элементов HTML в элементы React выполняется с помощью JSX или JavaScript XML.

Давайте посмотрим на пример кода JSX:

let customElement = <p>This is a JSX element! </p>;
ReactDOM.render(customElement, document.getElementById('root'));

А что, если бы мы написали этот код не с помощью JSX! Как бы это выглядело? Давайте посмотрим код:

let customElement = React.createElement('p',{}, 'Not using JSX!');
ReactDOM.render(customElement, document.getElementById('root'));

Как мы видим, насколько проще становится разобраться в коде, когда мы используем синтаксис JSX, который позволяет нам напрямую писать код HTML в нашем коде JavaScript.

Когда мы пишем JSX, мы используем фигурные скобки для записи выражений. Теперь это выражение может быть любым допустимым выражением JavaScript, которое будет выполняться JSX и возвращать этот результат. Давайте посмотрим на пример этого в коде:

let customElement = <p>Code written in JSX (2 * 1) times easier to understand than writing without JSX!</p>
Output:
Code written in JSX 2 times easier to understand than writing without JSX!

Мы можем использовать круглые скобки, когда хотим написать HTML-элементы более чем в одной строке. Давайте посмотрим на это в коде:

let customElement = (
<div>
   <h1> I am heading 1</h1>
   <h2> I am heading 2 </h2>
   <p> I am a paragraph </p>
</div>
);

Если вы внимательно посмотрите, элементы заголовка и элемент абзаца заключены в один элемент верхнего уровня, что является обязательным. Мы должны поместить все в один родительский элемент, в данном случае элемент ‹div›.

Мы также можем использовать фрагменты для этой цели. Это помогает нам, не добавляя никаких дополнительных узлов в DOM. Такой фрагмент выглядит как ‹›‹/›, который выглядит как пустой HTML-элемент.

Еще несколько вещей, которые следует помнить при написании кода JSX:

(i) HTML-элементы должны быть правильно закрыты. Пример кода:

let emailElement = <input type="email" />;

(ii) Использование атрибута className вместо класса. Пример кода:

let customElement = <p className="text-style">This is paragraph text</p>;

(iii) При вставке выражения JavaScript в JSX заключите выражение JavaScript в фигурные скобки { }. Пример кода:

let b = 3;
let customElement = <p> { b > 1 ? "Paragraph Text" : "Heading Text" } </p>;

Подводя итог, можно сказать, что JSX — отличное расширение для JavaScript. Он служит синтаксическим сахаром для функции React.createElement(), что делает код более читабельным и легким для понимания.