Запись разметки с использованием JSX

Beginner

This tutorial is from open-source community. Access the source code

Введение

Добро пожаловать в документацию по React! В этом практическом занятии вы познакомитесь с написанием разметки с использованием JSX.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 84%. Он получил 100% положительных отзывов от учащихся.

Запись разметки с использованием JSX

Виртуальная машина уже содержит проект React. В общем случае, вам нужно только добавить код в App.js.

Для установки зависимостей используйте следующую команду:

npm i

Синтаксис разметки, который вы видели выше, называется JSX. Он является необязательным, но большинство проектов React используют JSX за счет его удобства.

JSX более строгий, чем HTML. Теги, такие как <br />, должны быть закрыты. Также ваш компонент не может возвращать несколько JSX-тегов. Их нужно обернуть в общий родительский тег, например, <h1>...</h1> или пустой тег <>...</>:

// App.js
export default function Profile() {
  return (
    <>
      <h1>Hedy Lamarr</h1>
    </>
  );
}

Если у вас есть много HTML, который нужно перенести в JSX, вы можете использовать онлайн-конвертер.

Для запуска проекта используйте следующую команду. Затем вы можете обновить вкладку Web 8080, чтобы просмотреть веб-страницу.

npm start

Отображение данных

JSX позволяет помещать разметку в JavaScript. С использованием фигурных скобок можно “вернуться обратно” в JavaScript, чтобы вставить переменную из кода и отобразить ее для пользователя. Например, это отобразит user.name:

// App.js
const user = {
  name: "Hedy Lamarr"
};
export default function Profile() {
  return (
    <>
      <h1>{user.name}</h1>
    </>
  );
}

Можно также “вернуться в JavaScript” из атрибутов JSX, но для этого нужно использовать фигурные скобки вместо кавычек. Например, className="avatar" передает строку "avatar" в качестве CSS-класса, а src={user.imageUrl} читает значение переменной JavaScript user.imageUrl и передает его в качестве атрибута src:

// App.js
const user = {
  name: "Hedy Lamarr",
  imageUrl: "https://i.imgur.com/yXOvdOSs.jpg"
};
export default function Profile() {
  return (
    <>
      <h1>{user.name}</h1>
      <img className="avatar" src={user.imageUrl} />
    </>
  );
}

Добавление стилей

В React вы указываете CSS-класс с помощью className. Это работает так же, как атрибут class в HTML:

<img className="avatar" />

Затем вы пишете CSS-правила для него в отдельном CSS-файле:

/* App.css */
.avatar {
  border-radius: 50%;
}

React не规定дает, как добавлять CSS-файлы. В простейшем случае вы добавите тег <link> в свой HTML. Если вы используете инструмент сборки или фреймворк, обратитесь к его документации, чтобы узнать, как добавить CSS-файл в ваш проект.

// App.js
import "./App.css";

Вы также можете поместить более сложные выражения внутри фигурных скобок JSX, например, конкатенацию строк:

// App.js
const user = {
  name: "Hedy Lamarr",
  imageUrl: "https://i.imgur.com/yXOvdOSs.jpg",
  imageSize: 90
};

export default function Profile() {
  return (
    <>
      <h1>{user.name}</h1>
      <img
        className="avatar"
        src={user.imageUrl}
        alt={"Photo of " + user.name}
        style={{
          width: user.imageSize,
          height: user.imageSize
        }}
      />
    </>
  );
}

В приведенном выше примере style={{}} не является специальным синтаксисом, а обычным объектом {} внутри фигурных скобок style={ } JSX. Вы можете использовать атрибут style, когда ваши стили зависят от переменных JavaScript.

Резюме

Поздравляем! Вы завершили практическое занятие по записи разметки с использованием JSX. Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.