Вопросы на собеседовании фронтендера: React
Рендеринг и реконсиляция, хуки, мемоизация, эффекты, управление состоянием и ключи в списках. Главный блок вопросов для позиций от junior до senior: на нём проверяют, понимает ли кандидат, что React делает под капотом, а не только API.
Уровень — минимальный, с которого вопрос уместен: junior — базовая тема, middle — нужен опыт промышленной разработки, senior — архитектура и компромиссы.
Вопросов в теме: 87. Эталонные ответы и разбор твоего ответа — внутри тренажёра.
Как отвечать на вопросы темы «React»
Говори про поведение, а не про API: что React делает с этим механизмом при рендере и почему так решили. Отделяй правила от рекомендаций — где нарушение сломает логику, а где только замедлит. Хорошо работает пара примеров: сначала как было бы неправильно, потом как правильно и что изменилось.
Это схема ответа, а не готовый ответ: формулировка вопроса ничего не стоит, если не можешь объяснить её вслух за две минуты.
Список вопросов темы «React»
- Что такое React и как он работает?junior и вышетеория
Что проверяет: фундамент (главный вопрос любого React-собеса).
- В каких случаях нужно использовать useCallback и useMemo?junior и вышетеория
Что проверяет: Понимание, когда мемоизация оправдана, а когда вредна
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023); Frontend с оффером на 5000$ (06.04.2026); Frontend c оффером на 400к (13.04.2026); Frontend на 220к (01.05.2025); Frontend с оффером на 4000$ (30.03.2026)
- В какой момент выполняется функция, возвращаемая из useEffect?junior и вышетеория
Что проверяет: Знание порядка вызова cleanup-функции относительно следующего эффекта
Из записи реального собеседования: Frontend на 250к (19.04.2025)
- В сеттере useState лучше использовать предыдущее значение или текущее? Почему?junior и вышетеория
Что проверяет: Понимание функциональной формы обновления состояния
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- В чём разница между контролируемыми и неконтролируемыми компонентами?junior и вышетеория
Что проверяет: Понимание управления состоянием формы в React
Из записи реального собеседования: Frontend Teamlead Оффер на 400k (07.06.2024)
- В чём разница между useEffect и useLayoutEffect и когда каждый из них запускается?junior и вышетеория
Что проверяет: Понимание моментов запуска эффектов относительно отрисовки и DOM
Из записи реального собеседования: Frontend Teamlead Оффер на 400k (07.06.2024); Frontend с оффером на 300к (23.03.2026); Frontend c оффером на 400к (13.04.2026)
- Для чего нужен React.memo и как он работает?junior и вышетеория
Что проверяет: Понимание мемоизации компонентов и сравнения пропсов
Из записи реального собеседования: мок-собеседование по фронтенду, часть 1 (22.02.2025)
- Зачем нужен тег li и ключи при рендере списков постов и комментариев?junior и вышетеория
Что проверяет: Понимание семантики списков и назначения key
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Зачем нужно иммутабельное изменение состояния и почему нельзя просто изменить одно поле объекта?junior и вышетеория
Что проверяет: Понимание иммутабельности состояния и её связи с обнаружением изменений
Из записи реального собеседования: Frontend React на 280к (27.08.2024)
- Как добавить класс пульсации к элементу таймера по условию, не используя useEffect?junior и вышетеория
Что проверяет: Понимание, что className можно вычислять из пропсов без эффектов
Из записи реального собеседования: Frontend на 250к (19.04.2025)
- Как обработать форму из неконтролируемых компонентов?junior и вышетеория
Что проверяет: Практические способы чтения значений неконтролируемой формы
Из записи реального собеседования: Frontend Teamlead Оффер на 400k (07.06.2024)
- Как обычно импортируются и используются SVG-иконки в компонентах?junior и вышетеория
Что проверяет: Практика работы с SVG в React-проекте
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Как правильно обрабатывать изменение input в React: что нужно использовать в обработчике onChange?junior и вышетеория
Что проверяет: Понимание контролируемых компонентов и event.target.value
Из записи реального собеседования: Frontend с оффером на 4000$ (30.03.2026)
- Как работает useEffect в зависимости от массива зависимостей: без массива, с пустым массивом и с зависимостями?junior и вышетеория
Что проверяет: Знание поведения useEffect при разных массивах зависимостей
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Как работает useSelector и чем он отличается от useState?junior и вышетеория
Что проверяет: Понимание работы useSelector как подписки на store и его отличия от локального состояния
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Как реализовать добавление элемента в список в React-приложении?junior и вышелайв-кодинг
Что проверяет: Умение обновлять состояние списка иммутабельно и обрабатывать ввод
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Как реализовать переключение статуса элемента списка?junior и вышелайв-кодинг
Что проверяет: Умение обновлять один элемент массива через map и инвертировать булев флаг
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Как реализовать удаление элемента из списка по id?junior и вышелайв-кодинг
Что проверяет: Понимание фильтрации массива и иммутабельного обновления состояния
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Какие существуют причины ререндера компонента в React?junior и вышетеория
Что проверяет: Понимание причин перерисовки компонентов
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Можно ли обойтись без Redux, используя встроенные средства React, например Context?junior и вышетеория
Что проверяет: Понимание границ применимости Context и Redux и критериев выбора между ними
Из записи реального собеседования: Frontend React на 280к (27.08.2024)
- Нужен ли ключ (key) при рендере списка через map, если элементы только добавляются в конец и не сортируются?junior и вышетеория
Что проверяет: Понимание необходимости key в зависимости от операций со списком
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- Почему в React не стоит использовать document.querySelector для управления классами элемента и чем его заменить?junior и вышетеория
Что проверяет: Понимание декларативного подхода React к управлению классами вместо прямого DOM API
Из записи реального собеседования: Frontend на 250к (19.04.2025)
- Почему в useEffect нельзя передать асинхронную функцию?junior и вышетеория
Что проверяет: Понимание синхронной природы useEffect
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Почему в useEffect с setInterval нужно очищать интервал и как это сделать?junior и вышетеория
Что проверяет: Понимание необходимости cleanup в useEffect для таймеров
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023); Frontend с оффером на 300к (23.03.2026)
- Почему использование длины массива в качестве уникального идентификатора — плохой паттерн? Что использовать вместо этого?junior и вышетеория
Что проверяет: Понимание генерации уникальных id
Из записи реального собеседования: Frontend с оффером на 4000$ (30.03.2026)
- Чем классовые компоненты React отличаются от функциональных и какие у них особенности?junior и вышетеория
Что проверяет: Понимание отличий классовых и функциональных компонентов
Из записи реального собеседования: Frontend на 250к (26.04.2025)
- Что изменится в браузерном DOM после нажатия на кнопку, если компонент уже отрендерен и при нажатии меняется текст?junior и вышетеория
Что проверяет: Понимание точечного обновления DOM вместо пересоздания элементов
Из записи реального собеседования: Frontend React на 280к (27.08.2024)
- Что такое компонент и компонентный подход? Зачем приложение дробят на компоненты?junior и вышетеория
Что проверяет: Понимание компонентного подхода и целей декомпозиции
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Что такое мемоизация в React и какие способы мемоизации существуют?junior и вышетеория
Что проверяет: Знание useMemo, useCallback и React.memo
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Что такое Virtual DOM, как он работает и какую проблему решает?junior и вышетеория
Что проверяет: Понимание механизма виртуального DOM и его роли в производительности
Из записи реального собеседования: Frontend React на 280к (27.08.2024); Frontend разработчика оффер на 250k (03.11.2024)
- Расскажи про жизненный цикл компонента: какие есть методы и как они соотносятся с хуками?junior и вышетеория
- Зачем нужны хуки и какие есть правила их использования?junior и вышетеория
- Какие есть примеры хуков и для чего нужен каждый?junior и вышетеория
- Для чего нужен Context (useContext) и что за проблема prop drilling?junior и вышетеория
- Зачем нужен key в списках и что будет, если поставить индекс массива?junior и вышетеория
Что проверяет: понимание, как React сопоставляет элементы между рендерами.
- В чём разница между пропсами и состоянием? Когда что использовать?junior и вышетеория
Что проверяет: базовую модель данных React и умение не держать дубли.
- Что делает useEffect и зачем нужна функция очистки?junior и вышетеория
Что проверяет: понимание синхронизации с внешним миром и типовых утечек.
- Почему setCount(count + 1) дважды подряд даёт прибавку на единицу, а не на две?junior и вышетеория
Что проверяет: понимание асинхронности состояния, батчинга и функционального обновления.
- Найди проблемы в React-компоненте (подписка на offline + состояние счёта + список items)middle и вышелайв-кодинг
Что проверяет: системное код-ревью (задачи однотипные — есть чек-лист).
- В чём ключевые отличия React, Vue и Angular и чем библиотека отличается от фреймворка?middle и вышетеория
Что проверяет: Понимание различий между библиотекой и фреймворком и особенностей популярных инструментов
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- В чём отличие Redux от MobX?middle и вышетеория
Что проверяет: Умение сравнить подходы к управлению состоянием по ключевым осям
Из записи реального собеседования: Frontend React на 280к (27.08.2024)
- В чём проблема с useEffect, который синхронизирует локальный state с приходящим из props initialList? Как это исправить?middle и вышетеория
Что проверяет: Понимание антипаттерна синхронизации props в state через useEffect
Из записи реального собеседования: Frontend с оффером на 4000$ (30.03.2026)
- Зачем выносить таймер в отдельный компонент?middle и вышетеория
Что проверяет: Понимание изоляции частых обновлений состояния для предотвращения лишних ререндеров
Из записи реального собеседования: Frontend на 250к (19.04.2025)
- Как вынести таймер и табло в отдельный компонент, чтобы currentTime не вызывал ререндер всего приложения?middle и вышетеория
Что проверяет: Умение изолировать часто обновляемое состояние в дочернем компоненте и передавать данные через пропсы
Из записи реального собеседования: Frontend на 250к (19.04.2025); Frontend с оффером на 300к (23.03.2026)
- Как изменилась мемоизация в React 19?middle и вышетеория
Что проверяет: Знание изменений в мемоизации React 19
Из записи реального собеседования: Frontend на 220к (01.05.2025)
- Как изменить стили дочернего компонента из родителя, не трогая сам компонент?middle и вышетеория
Что проверяет: Знание способов стилизации дочерних компонентов
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Как правильно организовать загрузку данных и отображение лоадера в компоненте?middle и вышетеория
Что проверяет: Умение разделять ответственность между хуком загрузки данных и компонентом отображения, управление состоянием загрузки
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Как правильно типизировать пропсы стилей в переиспользуемом компоненте через union-типы вариантов?middle и вышетеория
Что проверяет: Подход к вариативной стилизации компонента
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Как работает React: что происходит после того, как сервер вернул HTML для SPA, на каком этапе появляется React в браузере и что он делает?middle и вышетеория
Что проверяет: Понимание жизненного цикла SPA и механизма работы React
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Как уменьшить вложенность условной отрисовки в JSX?middle и вышетеория
Что проверяет: Понимание реконсиляции и влияния вложенности условий на пересоздание элементов
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Какие основные способы оптимизации в React ты знаешь?middle и вышетеория
Что проверяет: Знание инструментов оптимизации рендера React и условий их применения
Из записи реального собеседования: Frontend на 250к (26.04.2025); Frontend с оффером на 270к (25.04.2026)
- Какие ошибки ты видишь в компоненте, который получает посты и комментарии через useEffect?middle и вышелайв-кодинг
Что проверяет: Умение находить проблемы в React-компоненте с запросами данных
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Какие состояния загрузки и ошибки стоит добавить при загрузке данных по кнопке и почему?middle и вышетеория
Что проверяет: Понимание необходимости loading и error состояний для асинхронных операций в UI
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- Какие middleware в Redux используются и какие проблемы они решают?middle и вышетеория
Что проверяет: Понимание назначения middleware и асинхронной логики в Redux
Из записи реального собеседования: Frontend React на 280к (27.08.2024)
- Какой менеджер состояния возьмёшь и почему?middle и вышетеория
Что проверяет: Умение выбирать инструмент управления состоянием исходя из требований, а не по умолчанию
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Какой роутер возьмёшь для SPA и какую версию?middle и вышетеория
Что проверяет: Знание React Router и ключевых изменений между мажорными версиями
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Когда достаточно использовать Context API, а когда нужен полноценный store?middle и вышетеория
Что проверяет: Умение выбирать инструмент управления состоянием по критериям
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Когда нужна мемоизация обработчика через useCallback, а когда она избыточна?middle и вышетеория
Что проверяет: Понимание, когда мемоизация колбэков реально нужна, а когда это лишнее
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- Когда стоит использовать неконтролируемые компоненты?middle и вышетеория
Что проверяет: Понимание trade-off'ов контролируемости и производительности форм
Из записи реального собеседования: Frontend Teamlead Оффер на 400k (07.06.2024)
- Напиши хук useFirstRender, который возвращает true при первом рендере и false при последующих.middle и вышелайв-кодинг
Что проверяет: Умение реализовать хук с useRef и useEffect для отслеживания первого рендера
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- Нормально ли при большой вложенности поднимать состояние в родителя и прокидывать его через пропсы?middle и вышетеория
Что проверяет: Понимание проблем prop drilling и лишних ререндеров
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Почему в компоненте используется useLayoutEffect вместо useEffect? Когда его следует использовать?middle и вышетеория
Что проверяет: Понимание разницы между useLayoutEffect и useEffect и случаев их применения
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- Почему в функциональном компоненте React нельзя использовать ранний return до хуков и как это связано с порядком вызова хуков?middle и вышетеория
Что проверяет: Понимание правил хуков и порядка их вызова
Из записи реального собеседования: Frontend с оффером на 4000$ (30.03.2026)
- Почему при проблемах с key элементы в React начинают вести себя некорректно?middle и вышетеория
Что проверяет: Понимание реконсиляции и роли key
Из записи реального собеседования: Frontend на 220к (01.05.2025)
- Почему useMemo и useCallback называют костылём?middle и вышетеория
Что проверяет: Понимание роли хуков мемоизации и исторического контекста React Compiler
Из записи реального собеседования: Frontend с оффером на 5000$ (06.04.2026)
- Приложение упало из-за ошибки в компоненте, и бизнес видит белый экран. Что делать, чтобы вместо белого экрана показывалось хотя бы сообщение?middle и вышетеория
Что проверяет: Знание Error Boundary и обработки ошибок рендера
Из записи реального собеседования: Frontend Teamlead Оффер на 400k (07.06.2024)
- Проведи код-ревью React-компонента с таймером: найди намеренную ошибку и неудачные места, затем исправь их.middle и вышелайв-кодинг
Что проверяет: Умение находить проблемы в React-коде: зависимости useEffect, работа с DOM, декомпозиция
Из записи реального собеседования: Frontend на 250к (19.04.2025)
- Проведи ревью React-компонента: что бы ты поправил?middle и вышелайв-кодинг
Что проверяет: Навык код-ревью: типизация пропсов, избыточность и читаемость
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- С какими state-менеджерами ты работал и чем локальное состояние отличается от глобального?middle и вышетеория
Что проверяет: Различение локального состояния компонента и глобальных state-менеджеров
Из записи реального собеседования: Frontend на 250к (26.04.2025)
- Чем хорош хук useId и почему нельзя просто сгенерировать случайный ID?middle и вышетеория
Что проверяет: Понимание назначения useId и проблем со случайными ID
Из записи реального собеседования: Frontend на 220к (01.05.2025)
- Что изменится в браузерном DOM после нажатия на кнопку, если список с ключами перевернули?middle и вышетеория
Что проверяет: Понимание влияния изменения порядка элементов на ререндер списка при наличии ключей
Из записи реального собеседования: Frontend React на 280к (27.08.2024)
- Что не так с компонентом списка постов и как его улучшить?middle и вышелайв-кодинг
Что проверяет: Умение находить проблемы в React-компоненте: пересоздание данных на каждом рендере, границы индексов, вынос статики из компонента
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Что произойдёт с useMemo, если в его зависимостях передаётся объект, который создаётся заново при каждом рендере?middle и вышетеория
Что проверяет: Понимание сравнения зависимостей по ссылке и его влияния на мемоизацию
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Что такое композиция хуков и чем она отличается от обычной утилиты?middle и вышетеория
Что проверяет: Понимание отличия хука от утилиты через замыкание и правила хуков
Из записи реального собеседования: Frontend на 350к (30.01.2026)
- Что такое мемоизация и кэширование? Когда их нужно использовать и почему по умолчанию это не работает во фреймворках?middle и вышетеория
Что проверяет: Понимание мемоизации, её цены и инструментов React
Из записи реального собеседования: Frontend на 250к (11.04.2026)
- Что такое паттерн render props и зачем он нужен?middle и вышетеория
Что проверяет: Знание паттерна render props и его назначения
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Что такое React Portal, для чего он используется и куда рендерится?middle и вышетеория
Что проверяет: Знание порталов и их практического применения
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Что такое React Query (useQuery) и зачем он нужен?middle и вышетеория
Что проверяет: Понимание инкапсуляции слоя запросов и кэширования данных
Из записи реального собеседования: Frontend на 350к (30.01.2026)
- Что такое Suspense в React и в каком контексте он применяется?middle и вышетеория
Что проверяет: Понимание назначения Suspense и его связи с ленивой загрузкой
Из записи реального собеседования: Frontend на 250к (26.04.2025)
- Что такое Redux и как он работает?middle и вышетеория
- Для чего используется useDeferredValue?seniorтеория
Что проверяет: Понимание useDeferredValue и его отличия от useTransition
Из записи реального собеседования: мок-собеседование по фронтенду, часть 2 (22.02.2025)
- Если обернуть children в функцию и вызывать её при рендере, будет ли тяжёлый компонент ререндериться на каждый скролл?seniorтеория
Что проверяет: Понимание разницы между React-элементом и функцией, создающей элемент (render props)
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Зачем мемоизировать всё подряд, если React Compiler не мемоизирует всё по умолчанию?seniorтеория
Что проверяет: Понимание, что тотальная мемоизация — признак проблем с потоком данных, а не решение
Из записи реального собеседования: Frontend с оффером на 5000$ (06.04.2026)
- Можно ли мемоизировать children внутри контейнера, чтобы тяжёлый компонент не ререндерился при скролле?seniorтеория
Что проверяет: Понимание, что мемоизация бесполезна, если значение меняется на каждом рендере
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Почему передача тяжёлого компонента через children предотвращает его лишний ререндер при обновлении состояния родителя?seniorтеория
Что проверяет: Понимание, что children — уже созданный React-элемент, который переиспользуется
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Сколько рендеров произойдёт у функционального компонента, если в нём выполняются два setState, затем await асинхронного запроса, затем ещё три setState?seniorтеория
Что проверяет: Понимание батчинга обновлений состояния в React и влияния await
Из записи реального собеседования: Frontend на 390к (13.02.2026)
- Что такое реактивность и почему React называют нереактивным?seniorтеория
Что проверяет: Понимание реактивности и роли setState в React
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
Проверить себя по этим вопросам
Список вопросов — это чек-лист подготовки, но на собеседовании проверяют другое: умеешь ли ты объяснить это вслух за две минуты. Тренажёр задаёт вопрос голосом, записывает ответ и разбирает его по четырём критериям найма. 15 ответов в месяц бесплатно, без карты.