React
Быстрый переход к обучению
Что нужно знать
- Рендеринг:
virtual DOM, reconciliation, роль
key, batching и приоритеты обновлений. - Hooks:
useEffect,useMemo,useCallback,useRef, правила зависимостей и cleanup. - State management: local state, lifting, context, server state, границы владения состоянием.
- Оптимизация: profiler-first подход, memoization по необходимости, снижение rerender scope.
- Надежность: Error Boundary, lazy/Suspense, hydration-границы, обработка сетевых ошибок.
Что уметь объяснить на собеседовании
- Почему компонент ререндерится и как это доказать, а не предполагать.
- Когда memoization полезна, а когда только усложняет код.
- Как предотвращать гонки асинхронных запросов и stale UI.
- Где у Context API узкие места по производительности.
- Как выбирать между CSR/SSR/SSG для React-приложения.
Грейд-фокус
- Junior:
базовые хуки, controlled components, списки и
key, жизненный цикл эффекта. - Middle: data-flow, профилирование ререндеров, границы состояния и производительности.
- Senior: архитектура фронтенд-модулей, устойчивость релизов, перформанс-стратегия для продукта.
Глубокие кейсы собеседования
-
Rerender bug: родитель пересоздает callback на каждом рендере, дочерние тяжелые элементы постоянно обновляются. Сильный ответ: сначала профилируем, затем стабилизируем reference только на горячем пути.
-
Async race в
useEffect: быстрый переход между экранами приводит к устаревшему ответу API в новом контексте. Сильный ответ:AbortController+ guard на актуальный запрос. -
Context overload: общий Provider хранит все данные страницы, изменение любой части триггерит всех подписчиков. Сильный ответ: split providers, selector-подход или вынос части state в специализированный слой.
Практический минимум
- Разобрать один реальный rerender-случай через React Profiler.
- Реализовать список с корректными
keyи проверкой reorder-сценария. - Написать компонент с async effect и корректным cleanup.
- Сделать lazy-загрузку экрана с UX-адекватным fallback.
- Подготовить короткий perf-отчет: проблема -> замер -> изменение -> результат.
Типовые ловушки
- Оптимизировать все без диагностики.
- Прятать зависимости эффекта, чтобы убрать warning.
- Путать проблемы рендера и проблемы сети.
- Оценивать SSR/CSR только по SEO без учета эксплуатационной цены.
Self-review перед собеседованием
- Я могу показать конкретный пример, где Profiler изменил решение.
- Я умею объяснить разницу между rerender, remount и repaint.
- Я могу назвать признаки, когда Context надо дробить.
- Я умею объяснить, как защищал экран от stale-response.
Связанные материалы
Архивный монолит
Полный старый материал: React (архив)