Разбор изменения DOM‑элементов в React‑компоненте
После клика изменится текст внутри существующей кнопки: например, a превратится в aa. Функция компонента выполнится заново, но сам DOM-элемент button пересоздавать не требуется.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
После клика изменится текст внутри существующей кнопки: например, a превратится в aa. Функция компонента выполнится заново, но сам DOM-элемент button пересоздавать не требуется.
Читать ответМемоизация полезна для чистого дорогого вычисления, но Date.now меняется со временем: кэширование изменит наблюдаемое поведение. handleSend зависит от inputText и не может быть навсегда заморожен через [].
Читать ответВынесите ClientType в независимый модуль, сервис пусть принимает clientId и возвращает уже разобранные данные. Компонент должен управлять загрузкой, ошибкой и отменой устаревшего запроса.
Читать ответИсходник содержит синтаксические ошибки, а обычная переменная count не обновляет интерфейс. Исправьте скобки и JSX, затем храните счётчик в useState.
Читать ответВ показанном варианте useCallback уже использован корректно: функция стабильна, updater не читает visible из замыкания, Button обёрнут в memo. Явной ошибки оптимизации здесь нет.
Читать ответНе запускайте fetch на каждом рендере: это создаст цикл запросов. Выполняйте его при изменении URL или явной перезагрузке, накапливая успешно полученные ответы в состоянии хука.
Читать ответЗагрузите /api/items в эффекте, извлеките payload.list и отобразите элементы с key=id. Предусмотрите загрузку, ошибку, пустой список и отмену запроса при размонтировании.
Читать ответПричина повторной подписки — новая inline-функция callback при каждом рендере App. Стабилизируйте её через useCallback и не пересоздавайте объект listenerOptions без изменения значений.
Читать ответПредставленный JSX уже синтаксически корректен. Реальные слабые места — всего десять возможных id, неточная модель таймера и div вместо доступной кнопки; исправлять несуществующие ошибки не нужно.
Читать ответПри чётном counter число скрыто, при нечётном показано. Эффект запускается после первого commit и изменения props.value, но не при изменении одного counter: его нет в зависимостях.
Читать ответВ коде есть незакрытые return, присваивание вместо сравнения, null вместо массива, неубранный обработчик и вероятное сохранение Promise в state. Исправления нужны и в JSX, и в эффекте загрузки.
Читать ответКомпонент накапливает обработчики и интервалы, а таймеры захватывают старый count. Нужны очистка эффекта, актуальное значение через ref и согласованное обновление связанных count/items.
Читать ответ