React

Тема дорожной карты · Frontend разработчик

React — это декларативная JavaScript-библиотека, разработанная Meta для построения составных пользовательских интерфейсов; она остаётся наиболее широко используемой frontend UI-библиотекой в индустрии. Программная модель React вращается вокруг компонентов — функций или классов, принимающих props и возвращающих JSX, синтаксическое расширение, позволяющее писать HTML-подобную разметку прямо в JavaScript. Алгоритм сравнения виртуального DOM (reconciliation) эффективно обновляет только изменившиеся части реального DOM, обеспечивая быстродействие React-приложений даже при росте деревьев компонентов. Начать работу с React сегодня означает использовать Vite (npm create vite@latest -- --template react) или Next.js для full-stack-приложений и писать компоненты на TypeScript (.tsx-файлы) с типобезопасными определениями props из @types/react.

Как это работает

React моделирует UI как дерево компонентов — JavaScript-функций, принимающих props и возвращающих JSX. State в useState-хуках; сайд-эффекты (fetch, subscribe) — в useEffect. На изменение state React ререндерит затронутый компонент, сравнивает virtual DOM, применяет минимальные DOM-обновления. Другие крупные фреймворки: Vue (template-based, реактивность встроена), Svelte (compile-time реактивность, меньше бандлы), Solid (signal-based, fine-grained), Angular (opinionated full framework). Выбирайте по знаниям команды.

Когда применять

React — самый большой хайринг + экосистема; Vue — "легче учить, есть шаблоны"; Svelte/Solid — самые маленькие бандлы + fine-grained реактивность; Angular — enterprise + full framework. Читайте официальную доку того, что выбрали; second-hand туториалы отстают от фичей. Не смешивайте фреймворки в одном приложении.

Типичные ошибки

Ловушки React: useEffect для того, что React делает сам (computed values, зеркалирование props); обновление state в render (infinite loop); огромные компоненты вместо декомпозиции; непонимание key prop в списках (порча при reorder); over-fetching на каждый render. Гайд React "You Might Not Need an Effect" убирает половину useEffect в реальных кодовых базах.

Связанные понятия

Полезные ресурсы