Реагировать Учебник

Реагировать Главная Реагировать Введение Реагировать Начать Реагировать ES6 Реагировать на визуализацию HTML Реагировать JSX Реагировать Компоненты Реагировать на класс Реагировать на реквизиты Реагировать на события Реагировать на условия Реагировать списки Реагировать на формы Реактивный маршрутизатор Реагировать на заметку Реагировать на стили CSS Реагировать на стиль Sass

Реагировать на крючки

Что такое крючок? использование состояния использованиеЭффект использованиеконтекста useRef использованиередьюсер использоватьОбратный звонок useMemo Пользовательские крючки

Упражнения по реагированию

Ответная викторина Упражнения по реагированию Сертификат реакции

Реагировать 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.


w3schools CERTIFIED . 2022

Получите сертификат!

Завершите модули React, выполните упражнения, сдайте экзамен и получите сертификат w3schools!!

ЗАПИСАТЬСЯ НА 95 $

Выражения в JSX

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

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

Пример

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

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


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

Чтобы написать HTML в несколько строк, поместите HTML в круглые скобки:

Пример

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

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


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

HTML-код должен быть заключен в ОДИН элемент верхнего уровня.

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

Пример

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

const myelement = (
  <div>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </div>
);

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

В качестве альтернативы вы можете использовать «фрагмент» для переноса нескольких строк. Это предотвратит ненужное добавление дополнительных узлов в DOM.

Фрагмент выглядит как пустой HTML-тег: <></>.

Пример

Оберните два абзаца внутри фрагмента:

const myelement = (
  <>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </>
);


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

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

Пример

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

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

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


Класс атрибута = имя_класса

Этот classатрибут часто используется в HTML, но поскольку JSX отображается как JavaScript, а classключевое слово является зарезервированным словом в JavaScript, вам не разрешено использовать его в JSX.

classNameВместо этого используйте атрибут .

JSX решил эту проблему, используя classNameвместо этого. Когда JSX визуализируется, он переводит className атрибуты в classатрибуты.

Пример

Используйте атрибут classNameвместо classJSX:

const myelement = <h1 className="myclass">Hello World</h1>;


Условия - операторы if

React поддерживает ifоператоры, но не внутри JSX.

Чтобы иметь возможность использовать условные операторы в JSX, вы должны поместить if операторы вне JSX или вместо этого использовать троичное выражение:

Опция 1:

Напишите ifоператоры вне кода JSX:

Пример

Напишите «Привет», если xменьше 10, иначе «До свидания»:

const x = 5;
let text = "Goodbye";
if (x < 10) {
  text = "Hello";
}

const myelement = <h1>{text}</h1>;

Вариант 2:

Вместо этого используйте тернарные выражения:

Пример

Напишите «Привет», если xменьше 10, иначе «До свидания»:

const x = 5;

const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;

Обратите внимание , что для встраивания выражения JavaScript в JSX код JavaScript должен быть заключен в фигурные скобки, {}.


Проверьте себя с помощью упражнений

Упражнение:

Визуализируйте элемент <p> без использования JSX.

const paragraph = React.createElement(, {}, 'This is a paragraph without using JSX!');

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