Подготовка к собеседованию
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.
Как использовать этот список
Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.
Посмотреть другие профессии →