Вернуться в видеотекуPublic interview for ReactJS Developer
Открытое ReactJS-собеседование с разбором типовых теоретических вопросов и задач на HOC и хуки. Ведущие обсуждают ответы кандидата, уточняют нюансы React и завершают встречу обратной связью.
- Направление
- Frontend
- Формат
- Техническое собеседование
- Длительность
- 1 ч 46 мин
Коротко о видео
Публичное учебное собеседование по ReactJS: кандидат Олег отвечает на вопросы Максима и вместе с ним разбирает теорию и практические задачи. Обсуждаются функциональное программирование и Event Loop в JavaScript, устройство React, формы, SyntheticEvent, Error Boundaries, HOC, хуки и мемоизация. В конце интервьюер даёт кандидату положительную обратную связь и отмечает темы, которые стоит дополнительно повторить, включая события React и render props.
Затронутые темы
Что взять на заметку
- Для Event Loop важно разделять синхронный код, микрозадачи Promise и задачи таймеров; setTimeout с задержкой 0 не гарантирует немедленного исполнения.
- Контролируемый input хранит значение в state React и обновляет его через обработчик; у неконтролируемого компонента значение читают из DOM через ref.
- В обсуждаемой версии React 17 отменён pooling SyntheticEvent, поэтому прежняя необходимость вызывать event.persist() для отложенного доступа к полям события больше не является обычным случаем.
- useCallback не предотвращает создание переданной ему функции при каждом рендере: при неизменных зависимостях он возвращает прежнюю ссылку. Польза возникает, когда стабильная ссылка нужна memoized-дочернему компоненту или другой зависимой логике.
- Для счётчика на setInterval следует использовать функциональное обновление setState, чтобы не захватить устаревшее значение в замыкании; интервал нужно очищать при остановке и размонтировании компонента.
- Идентификатор интервала между рендерами компонента разумно хранить в useRef; это избегает пересоздания обычной локальной переменной при каждом рендере.
- При подготовке стоит уметь объяснить Error Boundary: componentDidCatch обычно используют для побочных эффектов, например логирования, а static getDerivedStateFromError — чтобы обновить state и показать fallback UI.