Повышение производительности React‑компонентов
Оберните Child в React.memo и стабилизируйте onInputChange через useCallback. Тогда обновление text не меняет props дочернего компонента.
Читать ответПодготовка к интервью
1745 вопросов для подготовки на позицию Frontend-разработчик
Что проверяют на интервью
Подборка помогает системно подготовиться к интервью на позицию Frontend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: frontend, browser, react.
Каталог
Оберните Child в React.memo и стабилизируйте onInputChange через useCallback. Тогда обновление text не меняет props дочернего компонента.
Читать ответХраните состояние игры и индекс крота. После запуска или попадания планируйте появление через случайную задержку; при остановке очищайте таймер.
Читать ответБудут выведены undefined и b. Оба объектных ключа преобразуются в одинаковую строку '[object Object]', поэтому второе присваивание заменяет первое.
Читать ответПорядок: 1, 6, 4, 2, 3, 3.1, 5. Микрозадачи выполняются после текущего синхронного кода и между отдельными задачами таймеров.
Читать ответДа: изменение value обновляет Parent, а немемоизированный Child обычно рендерится вместе с ним. Кроме того, handleChange получает новую ссылку при каждом рендере.
Читать ответНужны два generic-параметра: TSource для входного элемента и TResult для результата. Callback связывает их и позволяет вывести итоговый тип массива.
Читать ответНет, мутация count2.name не вызывает обновление React. Объект изменится в памяти, но интерфейс не обязан обновиться до другого рендера.
Читать ответХраните список контактов и два поля формы в state. При submit добавляйте запись с отдельным ID, затем очищайте поля.
Читать ответПередайте в useState функцию-инициализатор, а не уже вычисленное значение. Для инкремента используйте prev => prev + 1.
Читать ответВосстановите Provider, dispatch thunk из эффекта, selector статуса и await axios. В slice нужны настоящий ID, инверсия completed и отсутствующий deleteTodo.
Читать ответНужно исправить синтаксис стрелок и JSX, возврат элементов map, обновление state и очистку подписки с таймером. Исходник создаёт интервалы без удаления.
Читать ответSpread {...storage} создаёт обычный объект, а не Map. Поэтому у результата нет метода get; корректная поверхностная копия — new Map(storage).
Читать ответ