Все профессии

Подготовка к собеседованию

React-разработчик: вопросы и ответы на собеседовании

Вопросы по React, хукам, состоянию, рендерингу, архитектуре компонентов и Next.js.

React Core

3 вопросов
Зачем React нужен key в списках?junior

Key помогает React сопоставить элементы между рендерами и сохранить их состояние. Он должен быть стабильным идентификатором сущности, а индекс массива опасен при вставках и сортировке.

Для чего используется useEffect?junior

useEffect синхронизирует компонент с внешней системой: подпиской, таймером, запросом или DOM API. Вычисления из props и state не следует помещать туда без необходимости.

Что такое reconciliation?middle

React сравнивает новое дерево элементов с предыдущим и выбирает минимальный набор изменений DOM. Тип элемента и key влияют на то, будет ли состояние компонента сохранено.

Состояние и архитектура

4 вопросов
Когда состояние поднимать вверх?junior

Если несколько компонентов должны читать и изменять одно значение, его поднимают к ближайшему общему владельцу. Для глобальных или часто меняющихся данных используют контекст или специализированное хранилище.

Что такое controlled input?junior

Значение поля хранится в React state и меняется через обработчик. Такой подход даёт единый источник истины и удобную валидацию, но при больших формах требует аккуратной оптимизации.

Когда использовать useReducer?middle

useReducer удобен для сложного состояния с несколькими переходами и действиями. Редьюсер должен быть чистым, а побочные эффекты остаются за его пределами.

Как избежать prop drilling?junior

Сначала проверяют, можно ли поднять состояние ближе к потребителю. Для действительно общих данных используют context или store, но не превращают весь state в глобальный.

Производительность

3 вопросов
Что вызывает лишние рендеры?middle

Изменение state, props или context запускает рендер. Частые причины лишних обновлений — нестабильные объекты и callback, слишком широкий context и состояние, поднятое выше необходимого.

Когда применять React.memo?middle

memo полезен для компонента, который часто получает те же props и дорого рендерится. Это не универсальная оптимизация: сначала измеряют проблему и проверяют стабильность props.

Как ускорить большой список?middle

Виртуализируют видимую часть, используют стабильные key и мемоизацию строк. Также ограничивают количество данных и избегают тяжёлых вычислений внутри render.

Как использовать этот список

Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.

Посмотреть другие профессии →