Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

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

Вопрос проверяет понимание оптимизации производительности с помощью мемоизации.

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

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

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

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

1. useMemo:

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

  • Пример:

const expensiveValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);

2. useCallback:

  • Сохраняет ссылку на функцию между рендерами.

  • Пример:

const handleClick = useCallback(() => doSomething(a, b), [a, b]);

Как работает мемоизация:

  • React запоминает значение/функцию и возвращает его, пока зависимости не изменились.

  • Без мемоизации при каждом рендере создаются новые объекты/функции, что может вызывать лишние ререндеры дочерних компонентов.

Вывод:
Используйте useMemo для значений, useCallback для функций, если они передаются в оптимизированные дочерние компоненты (например, React.memo).

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • React

    React

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

#usememo

#usecallback

#memoization

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