ГлавнаяПодготовка к собеседованию React
REACT · FRONTEND · ПРАКТИКА

Собеседование
по React.
Начни с практики.

Разбери компоненты, состояние и эффекты. Проверь, можешь ли объяснить React на примерах, а не только назвать хуки.

Примеры открыты без регистрации

ПОПРОБУЙ ПРЯМО СЕЙЧАС

Что выведет код?

// count равен 0
setCount(count + 1);
setCount(count + 1);
setCount(count + 1);
Выбери ответ
Выбери вариант, чтобы проверить ответ и прочитать объяснение.
01 / ПРОВЕРЬ ОСНОВЫ

Вопросы на собеседовании React

Начни с ответа своими словами. Затем открой разбор и проверь, можешь ли объяснить не только правило, но и пример его применения.

01КомпонентыЧем props отличаются от state?

Props передаются компоненту снаружи и не изменяются им напрямую. State хранит состояние компонента между рендерами. Обновление состояния запрашивает новый рендер; вычисляемые из props или state значения часто не нужно хранить отдельно.

Уточнение на интервью

Нужно ли хранить в state длину массива, который уже приходит через props?

02СостояниеПочему состояние выглядит как снимок?

Каждый рендер получает своё значение state. Вызов setter не меняет переменную в уже выполняющемся обработчике. Если следующее значение зависит от предыдущего, используй функциональное обновление, например setCount(c => c + 1).

Уточнение на интервью

Почему несколько setCount(count + 1) в одном обработчике не означают несколько последовательных прибавлений?

03ЭффектыКогда нужен useEffect?

Эффект нужен для синхронизации с внешней системой: подпиской, таймером или сетевым соединением. Для вычисления значения из props обычно достаточно самого рендера. Подписки и таймеры требуют корректной очистки; зависимости должны отражать реактивные значения эффекта.

Уточнение на интервью

Как избежать оставшегося таймера после размонтирования компонента?

04СпискиПочему важен стабильный key?

key помогает React сопоставлять элементы между рендерами. Для изменяемого списка лучше использовать стабильный идентификатор данных. Индекс может привести к переносу состояния к другому элементу при вставке, удалении или перестановке.

Уточнение на интервью

Что произойдёт с локальным состоянием строки, если вставить новый элемент в начало списка с key по индексу?

02 / ОТ ОБЪЯСНЕНИЯ К РЕШЕНИЮ

Обнови список без мутации.

У тебя есть массив задач со свойствами id и done. Верни новый массив, изменив done только у задачи с нужным id.

ПРАКТИЧЕСКАЯ ЗАДАЧАREACT
toggle([{ id: 1, done: false }], 1);
// [{ id: 1, done: true }]

Проверь основной сценарий и крайние случаи. Объясни ход решения и ограничения выбранного подхода.

Посмотреть решение и разбор
const toggle = (items, id) =>
  items.map(item => item.id === id
    ? { ...item, done: !item.done }
    : item);

map создаёт новый массив, а spread — новый объект изменяемой задачи. В компоненте вызови setItems(prev => toggle(prev, id)). Время O(n).

03 / СЛЕДУЮЩИЙ ШАГ ПОНЯТЕН

Собери план подготовки

Отметь пройденные темы. Это пример маршрута: глубину и темп выбирай под свою вакансию и уровень.

Повторено 0 из 5 блоков

ОТ ПРАКТИКИ К ПЛАНУ

Что будет после тренировки?

После тренировки появятся итоговая оценка и общий отзыв. В Pro — подробный разбор ответов, материалы для повторения и все тренировки по System Design.

ПРИМЕР РЕКОМЕНДАЦИИСледующий шаг в подготовке

Повтори обновление состояния. Сравни setCount(count + 1) и setCount(c => c + 1) внутри одного обработчика.

ПЕРЕД ТРЕНИРОВКОЙ

Частые вопросы

Подойдёт ли подготовка для Junior?

Да. Выбери Junior и начни с основ направления. Глубину вопросов и список тем сверяй с требованиями вакансии.

Это курс с нуля?

Это подготовка к техническому интервью и практика уже изученных навыков. Для старта пригодятся базовые знания выбранного направления.

Что доступно без аккаунта?

Все вопросы, разборы, задача и план на этой странице. Для персональной тренировки и сохранения результатов понадобится аккаунт. Условия — на странице тарифов.

ПОСЛЕ ТРЕНИРОВКИ

Не просто оценка.
Понятно, что
повторить дальше.

Посмотри, как выглядит результат по React: что уже получается, в каких темах есть ошибки и как разобраться в сложной теме.

  • Результат без догадокИтоговая оценка и общий отзыв
  • Ошибка с объяснениемТвой ответ, правильный ответ и разбор в Pro
  • Материалы по слабым темамСсылки для повторения в Pro
Получить свой первый отчёт

3 тренировки бесплатно. Детальный разбор и материалы доступны с подпиской Pro.

ПРИМЕР ОТЧЁТАPro

Frontend · React

Junior · 10 вопросов · 2 задачи

Основа есть.
Детали стоит закрепить.

Ты уверенно отвечаешь на базовые вопросы по React. Повтори темы, в которых возникли ошибки.

Теория · 7 из 1070%
Практика · 2 задачи65%
Слабые темы3 темы
  • Компоненты
  • Состояние
  • Эффекты

Повтори обновление состояния. Сравни setCount(count + 1) и setCount(c => c + 1) внутри одного обработчика.

Результат одной тренировкиДетальный отчёт · Pro
Демонстрационные данные.
Твой отчёт зависит от выбранного стека и ответов.
Попробуй переключить разделы ↑

Другая технология или направление?

Настроить подготовку под свой стек