React за один вечер
React — это библиотека интерфейсов с одной идеей: интерфейс есть функция от состояния. Компонент хранит состояние через useState, получает данные через props и перерисовывается, когда меняется то или другое. Всё остальное — хуки, контекст, роутеры — удобства вокруг этого цикла.
Не начинайте новые статические сайты на React: отрендеренные на сервере страницы или обычный HTML загружаются быстрее и ломаются реже. Берите React, когда на странице есть настоящее интерактивное состояние — редакторы, дашборды, пошаговые мастера — и используйте его вместе с Vite вместо устаревшего create-react-app.
Состояние без слёз
Локальное состояние живёт в useState, общее — в контексте, и этого хватает большинству приложений. Внешнее хранилище нужно только когда несвязанные компоненты действительно делят меняющиеся данные; проброс props через два уровня — не та проблема, для которой нужна библиотека. Когда рендер кажется медленным, профайлер (а не memo, рассыпанный повсюду) подскажет, какой компонент на самом деле перерисовывается слишком часто.
Эффекты нужны для синхронизации, а не для логики
Если эффект что-то вычисляет для рендера, ему место в теле рендера или в memo: эффекты выполняются после отрисовки и вызывают именно то мерцание, за которое ругают React. Оставьте эффекты для внешнего мира: подписки, таймеры, ручная работа с DOM. Эффекты с загрузкой данных при монтировании разрастаются в водопады; библиотека данных с кэшированием заменяет десяток из них в первый же день.
| Vite: мгновенный dev-сервер | |
| Vue для тех, кто знает React | |
| Node.js |