Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: usememo, usecallback

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

Вопрос проверяет понимание мемоизации значений и функций в функциональных компонентах.

Короткий ответ

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

Длинный ответ

Оба хука решают похожую задачу, но применяются в разных ситуациях.

Определение

  • useMemo — мемоизирует результат вычисления

  • useCallback — мемоизирует ссылку на функцию

Как работает useMemo

Используется для тяжёлых вычислений:

const total = useMemo(() => {
  // сложное вычисление
  return price * count;
}, [price, count]);

Как работает useCallback

Используется для стабилизации функций:

const handleClick = useCallback(() => {
  setCount(c => c + 1);
}, []);

Почему это важно

Без мемоизации:

  • функции и объекты создаются заново

  • React.memo не работает

  • растёт число перерендеров

Распространённая ошибка

Часто:

  • используют хуки без необходимости

  • усложняют код без выигрыша в производительности

Краткий вывод

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • React

    React

Ключевые слова

#usememo

#usecallback

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