Главная / React
Библиотека интерфейсов
React: собирай интерфейс из частей
В React страницу удобно мыслить как набор небольших компонентов. Разберём этот подход спокойно: без магии, но с работающими примерами.
- Нужен JavaScript
- 13 тем
- Компоненты и state
Программа
Сначала фундамент
React становится понятнее, когда каждая новая идея отвечает на конкретную задачу интерфейса.
Компоненты
Разделяем интерфейс на независимые части.
02 / данныеProps
Передаём данные в компонент.
03 / действиеState
Меняем состояние компонента.
04 / урокJSX в React: разметка внутри JavaScript
Что такое JSX в React: разметка в JavaScript, выражения в фигурных скобках, className и htmlFor, Fragment, стили-объекты и экранирование.
05 / урокЗагрузка в React
Эффект нужен для запроса. Обычный рендер только показывает уже полученные данные.
06 / урокКнопка в React меняет состояние
Компонент уже умеет хранить state. Кнопка — самый прямой способ его поменять.
07 / урокДва экрана одним состоянием
Для двух видов одной маленькой программы маршрутизатор не обязателен.
08 / урокОшибка запроса в состоянии компонента
Загрузка, успех и ошибка — три состояния, и одно из них не должно затирать остальные.
09 / новая темаuseEffect в React
Подключаем события, запросы и очистку эффекта.
10 / новая темаУсловный рендеринг в React
Работаем с if, тернарным оператором и &&.
11 / новая темаСписки и key в React
Рендерим коллекции без ошибок состояния.
12 / новая темаФормы в React
Связываем input со state и обрабатываем submit.
13 / новая темаПодъём состояния в React
Синхронизируем соседние компоненты через родителя.
Практикумы
Короткие задачи по React
Короткие задачи на одну тему: прочитай, повтори в песочнице и проверь результат.
Два экрана одним состоянием
Для двух видов одной маленькой программы маршрутизатор не обязателен.
практикумКнопка в React меняет состояние
Компонент уже умеет хранить state. Кнопка — самый прямой способ его поменять.
практикумОшибка запроса в состоянии компонента
Загрузка, успех и ошибка — три состояния, и одно из них не должно затирать остальные.
Практика: список задач
Собери небольшой список дел: добавляй задачи, отмечай готовые и тренируй работу со state.
Подробнее
React обновляет интерфейс из данных
В обычном скрипте ты сам находишь элемент и меняешь текст. В React ты описываешь, как интерфейс выглядит при текущих данных, и меняешь данные. Библиотека заново вызывает компонент и обновляет нужные узлы. Поэтому прямое document.querySelector внутри компонента быстро расходится с тем, что React считает правдой.
Компонент — функция, которая получает вход и возвращает разметку. Одинаковый вход должен давать одинаковую разметку. Запрос на сервер, подписка и запись в хранилище живут в эффектах, а не посреди вычисления разметки.
function Price({ amount }) {
return <strong>{amount.toLocaleString("ru-RU")} ₽</strong>;
}
export default function Card() {
return <p>Занятие стоит <Price amount={1800} /></p>;
}Что учить сразу после первого компонента
- Props передают данные внутрь и не меняются самим компонентом.
- State хранит то, что меняется: счётчик, текст поля, открыто ли меню.
- Списки требуют стабильный
key, а не индекс, если элементы удаляются и переставляются. - Эффект нужен для связи с внешним миром, а не для каждой производной цифры.
Частые первые поломки
Имя компонента с маленькой буквы React воспринимает как обычный тег. Соседние элементы без общей обёртки нельзя вернуть просто так: оберни их во фрагмент. Вызов setState прямо в теле компонента запускает новый рендер и зацикливает страницу. Состояние меняют в обработчике или в эффекте, а не во время рисования.