САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ

React JSX



Что такое JSX?

JSX расшифровывается как JavaScript XML.

JSX позволяет нам писать HTML в React.

JSX облегчает написание и добавление HTML в React.


Кодирование JSX

JSX позволяет нам писать HTML элементы на JavaScript и помещать их в DOM без каких-либо методов createElement() и/или appendChild().

JSX преобразует HTML теги в реактивные элементы.

Вы не обязаны использовать JSX, но JSX облегчает написание приложений React.

Давайте продемонстрируем на двух примерах, что первый использует JSX, а второй - нет:

Пример 1

JSX:

const myelement = <h1>I Love JSX!</h1>;

ReactDOM.render(myelement, document.getElementById('root'));

Выполнить пример »

Пример 2

Без JSX:

const myelement = React.createElement('h1', {}, 'I do not use JSX!');

ReactDOM.render(myelement, document.getElementById('root'));

Выполнить пример »

Как вы можете видеть в первом примере, JSX позволяет нам писать HTML непосредственно в коде JavaScript.

JSX является расширением языка JavaScript, основанного на ES6, и переводится в обычный JavaScript во время выполнения.


Выражения в JSX

С помощью JSX вы можете писать выражения внутри фигурных скобок { }.

Выражение может быть переменной React, свойством или любым другим допустимым выражением JavaScript. JSX выполнит выражение и вернет результат:

Пример

Выполните выражение 5 + 5:

const myelement = <h1>React is {5 + 5} times better with JSX</h1>;

Выполнить пример »


Вставка большого блока HTML

Написать HTML код на несколько строк, поместите код внутри скобок:

Пример

Создайте список из трех элементов списка:

const myelement = (
  <ul>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Cherries</li>
  </ul>
);

Выполнить пример »


Один элемент верхнего уровня

HTML код должен быть завернут в один элемент верхнего уровня.

Поэтому, если вы хотите написать два заголовка, вы должны поместить их в родительский элемент, например элемент div

Пример

Оберните два заголовка внутри одного элемента DIV:

const myelement = (
  <div>
    <h1>I am a Header.</h1>
    <h1>I am a Header too.</h1>
  </div>
);

Выполнить пример »

JSX выдаст ошибку, если HTML не является правильным, или если HTML пропускает родительский элемент.


Элементы должны быть закрыты

JSX следует правилам XML, и поэтому HTML элементы должны быть правильно закрыты.

Пример

Закрыть пустые элементы с помощью />

const myelement = <input type="text" />;

Выполнить пример »

JSX выдаст ошибку, если HTML не будет правильно закрыт.