Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

Подпишись на React Developer в телеграм

Вопросы React Frontend Developer


Отличие useMemo от useCallback.

useMemo и useCallback оба предназначены для оптимизации производительности в React, но служат разным целям. useMemo запоминает вычисленные значения, а useCallback запоминает функции. Это позволяет избежать лишних вычислений и создания функций при каждом рендере компонента.

Подробнее

Для чего нужны useMemo и useCallback? Как работает мемоизация?

  • useMemo: Кэширует результат вычислений, пересчитывая только при изменении зависимостей.

  • useCallback: Кэширует функцию, предотвращая её пересоздание.
    Оба помогают избежать лишних ререндеров.

Подробнее

В чем разница между useMemo и useCallback?

useMemo мемоизирует вычисляемое значение.
useCallback мемоизирует функцию.
Оба хука зависят от массива зависимостей.
Они используются для оптимизации перерендеров.

Подробнее

Какие есть издержки у чрезмерного использования useMemo и useCallback?

useMemo и useCallback сами по себе имеют стоимость. Они усложняют код и увеличивают когнитивную нагрузку. При неправильном использовании они не дают выигрыша в производительности. Иногда они даже замедляют приложение. Эти хуки нужно применять осознанно и точечно.

Подробнее

В чём разница между мемоизацией значений и мемоизацией функций?

Мемоизация значений (useMemo) сохраняет результат вычисления, чтобы не пересчитывать его без нужды. Мемоизация функций (useCallback) сохраняет ссылку на функцию, чтобы она не создавалась заново. В React это важно из-за shallow сравнения props и зависимостей. Оба инструмента полезны, когда вычисления дорогие или когда ссылка влияет на ререндер дочерних компонентов.

Подробнее

Когда нет смысла использовать useCallback?

Какие зависимости нужно указывать в useCallback?

Как определить по коду, нужен ли useCallback или нет?

Как понять, достаточно ли сложный кейс, чтобы применить useMemo или useCallback?

  • Рейтинг:

    4

  • Сложность:

    5

useCallback не нужен, когда функция не передается вниз по дереву компонентов в качестве пропса. Если функция используется только внутри компонента и не зависит от изменяющихся зависимостей, её мемоизация излишня. Также нет смысла использовать useCallback для простых компонентов, которые редко перерисовываются, так как накладные расходы на мемоизацию могут превысить выгоду. Встроенные обработчики событий, которые не вызывают лишних ререндеров дочерних компонентов, также не требуют useCallback.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

В useCallback нужно указывать все переменные и функции из внешнего скоупа, которые используются внутри колбэка. Это включает пропсы, стейты и другие значения, от которых зависит работа функции. Если не указать зависимость, колбэк будет использовать устаревшее значение. React сам подсказывает через линтер, какие зависимости нужны.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

useCallback нужен, когда вы передаете функцию в качестве пропса дочернему компоненту, обернутому в React.memo, или когда функция используется в массиве зависимостей других хуков (useEffect, useMemo). Если функция создается внутри компонента и передается в обычный HTML-элемент (div, button) или в компонент без React.memo, useCallback не дает выигрыша, так как ререндер все равно произойдет. Также не стоит использовать useCallback для простых функций, вызываемых по событию (onClick, onChange), если нет проблем с производительностью.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    6

Используйте useMemo и useCallback только когда есть измеримая проблема производительности. Они полезны для предотвращения дорогих перерисовок или повторных вычислений, когда зависимые значения не меняются. Не применяйте их по умолчанию — это может ухудшить производительность из-за накладных расходов на мемоизацию. Оценивайте сложность вычислений и частоту ререндеров.
Подробнее
  • Рейтинг:

    5

  • Сложность:

    7

  • Рейтинг:

    2

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    5

  • Сложность:

    6