Перейти к содержанию
Разработка FE—02

React на практике

Курс для тех, кто уже верстает и хочет собирать интерфейсы на React. Разбираем состояние, хуки, данные с сервера и маршрутизацию, а в финале выкладываем в сеть рабочий магазин с корзиной и оплатой.

12 модулей34 уроков
26 часоввидео и практики
Нужна вёрсткатребования
Навсегдадоступ и обновления
Формат
€72 разовый платёж
Оформить заказ Открыть программу
Оплата картой или через PayPal
Доступ открывается сразу после оплаты
Возврат 14 дней, если не начали смотреть
Результат

Что вы сможете делать

Собирать интерфейс из компонентов и передавать данные через пропсы
Управлять состоянием через useState, useReducer и собственные хуки
Загружать данные с сервера и показывать загрузку и ошибки
Настраивать маршруты, параметры URL и защищённые страницы приложения
Находить лишние рендеры и ускорять тяжёлые списки
Писать базовые тесты, собирать проект и выкладывать его в сеть
Программа

12 модулей, один проект

Нажмите на модуль, чтобы раскрыть уроки

01 Первые компоненты и JSX3 урока · 2 ч 16 минОткрыт

Ставим проект, разбираемся в структуре папок и синтаксисе JSX. Берём макет каталога из вёрстки и делим его на компоненты, которые дальше растут в магазин.

Сборка проекта на Vite и структура папок
JSX: разметка, выражения и атрибуты
Делим макет каталога на компоненты
02 Пропсы и композиция компонентов3 урока · 2 ч 16 мин

Учимся передавать данные вниз по дереву и собирать сложные блоки из простых. Разбираем children, значения по умолчанию и границу между компонентом и его настройками.

Передаём данные в компонент через пропсы
Children и слоты: карточка товара и модалка
Значения по умолчанию и проверка входных данных
03 Состояние и хуки3 урока · 2 ч 17 мин

Состояние компонента, реакция на события и эффекты для работы с внешним миром. Выносим повторяющуюся логику в свои хуки и разбираем частые ошибки с зависимостями.

useState: количество товара и переключатели
useEffect и зависимости: синхронизация с внешним миром
Свой хук: выносим повторяющуюся логику
04 Списки, ключи и условный рендеринг2 урока · 1 ч 34 мин

Рендерим каталог из массива, разбираемся с ключами и тем, почему список «прыгает». Показываем пустые состояния, фильтры и сортировку без лишних перерисовок.

Рендер каталога через map и ключи
Пустые состояния, фильтры и сортировка
05 Формы и валидация3 урока · 2 ч 16 мин

Управляемые поля, состояние формы и валидация без сторонних библиотек. Собираем многошаговую форму заказа с понятными сообщениями об ошибках и блокировкой повторной отправки.

Управляемые поля и состояние формы
Валидация и сообщения об ошибках
Форма оформления заказа: шаги и отправка
06 Данные с сервера3 урока · 2 ч 19 мин

Запрашиваем каталог с сервера: async/await, отмена устаревших запросов и гонки ответов. Добавляем поиск и постраничную загрузку, не ломая состояние экрана.

fetch и async/await: загружаем каталог
Отмена запросов и гонки ответов
Поиск и постраничная загрузка
07 Загрузка, ошибки и повторные попытки2 урока · 1 ч 34 мин

Разбираем два состояния, о которых обычно забывают: пока грузится и когда сломалось. Скелетоны, повторные попытки, границы ошибок и понятные сообщения пользователю.

Скелетоны и индикаторы загрузки
Ошибки запросов, повторы и error boundary
08 Маршрутизация3 урока · 2 ч 12 мин

Разводим магазин по страницам: каталог, товар, корзина, оформление. Параметры URL, вложенные маршруты с общим layout, редиректы и доступ только для авторизованных.

Маршруты, ссылки и параметры URL
Вложенные маршруты и общий layout
Защищённые страницы и редиректы
09 Общее состояние приложения3 урока · 2 ч 21 мин

Когда пропсов становится мало: контекст для темы и пользователя, useReducer для корзины. Сравниваем подходы и выносим корзину во внешний стор с сохранением между сессиями.

Контекст: тема, пользователь и язык
useReducer: логика корзины в одном месте
Выносим корзину во внешний стор
10 Производительность и повторные рендеры3 урока · 2 ч 16 мин

Ищем причины лишних перерисовок в профайлере и чиним их. memo, useMemo и useCallback по делу, виртуализация длинного каталога и измерения до и после.

Почему компонент рендерится: разбор в профайлере
memo, useMemo и useCallback по делу
Виртуализация длинного списка товаров
11 Тестирование базовых сценариев3 урока · 2 ч 19 мин

Пишем тесты, которые проверяют поведение, а не разметку. Клик по кнопке, отправка формы, добавление товара в корзину и моки сетевых запросов.

Настройка тестов и первый тест компонента
Тестируем форму и добавление в корзину
Моки запросов и проверка состояний загрузки
12 Сборка, деплой и финальный проект3 урока · 2 ч 20 мин

Собираем продакшн-сборку, разбираемся с переменными окружения и размером бандла. Дописываем оплату заказа, выкладываем магазин в сеть и проверяем его на реальном домене.

Сборка, переменные окружения и размер бандла
Оплата заказа и подтверждение
Деплой магазина и проверка на проде
Материалы

Что вы получаете

Стартовый репозиторий магазина

Заготовка проекта с вёрсткой каталога, макетами карточек и учебным API, чтобы начать с первого урока без настройки окружения.

Чек-лист код-ревью компонента

Список проверок перед мержем: структура пропсов, побочные эффекты, ключи в списках, обработка ошибок, доступность и повторные рендеры.

Шпаргалка по хукам

Короткие карточки с сигнатурами, типичными ошибками и примерами для useState, useEffect, useMemo, useCallback, useReducer и своих хуков.

Разбор финального проекта

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

Dediu Pavel
Автор курса

Dediu Pavel

Ведёт направление «Веб-разработка» в Forma. Полный список курсов автора — на его странице.

Все курсы автора

Первый модуль открыт целиком

Посмотрите уроки первого модуля и первое задание. Если формат не подойдёт — вы ничего не потеряли.

Оформить за €72Смотреть бесплатно