React

React.js

Что это такое

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

Почему это важно

Обновление DOM вручную — источник большинства ранних ошибок фронтенда: забудете снять обработчик или обновите лишь одно из трёх мест, где живёт одно и то же значение, — и экран постепенно перестанет соответствовать данным. React убирает этот класс ошибок, потому что отрисованный результат становится чистой функцией состояния: измените состояние, и интерфейс перестроится сам. Именно поэтому он доминирует на рынке труда — ментальная модель достаточно мала, чтобы выучить её за день, и достаточно сильна, чтобы выдержать большое приложение. Вдобавок это экосистема, под которую написано всё остальное — от библиотек компонентов до инструментов тестирования.

Что в этом треке

  1. Рендеринг и JSX (02-frontend/29-react/01-rendering-and-jsx) — как компонент превращается в DOM и каким синтаксисом вы его описываете.
  2. Компоненты и свойства (02-frontend/29-react/02-components-and-props) — как разделить экран на компоненты и передать данные вниз, не изменяя их.
  3. Состояние и хуки (02-frontend/29-react/03-state-and-hooks) — как заставить компонент помнить значения между рендерами: здесь и помогает useState.
  4. Эффекты и загрузка данных (02-frontend/29-react/04-effects-and-data-fetching) — как выполнять побочные эффекты после рендера и загружать данные без гонок.

Предварительные требования

Что читать дальше

  • Управление состоянием (02-frontend/23-state-management) — что выбрать, когда состояние приходится делить между экранами.
  • UI-компоненты (02-frontend/12-ui-components) — проектирование строительных блоков, из которых вы теперь будете собирать интерфейс.
  • Инструменты разработчика в браузере (02-frontend/27-browser-devtools) — как инспектировать живое дерево компонентов, пока оно меняется.