Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: memo, optimization

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

Этот вопрос проверяет понимание различий между двумя хуками React, которые помогают оптимизировать производительность.

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

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

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

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

useMemo запоминает результат вычислений и возвращает сохраненное значение, если зависимости не изменились. Это полезно, когда у вас есть дорогие вычисления, которые не должны повторяться без необходимости:

import React, { useMemo } from 'react';

function App({ number }) {
 	const computedValue = useMemo(() => {
   		// Долгий расчет
   		return number * 2;
 	}, [number]);

 	return <div>{computedValue}</div>;
}

useCallback запоминает функцию, предотвращая её создание заново при каждом рендере компонента, если зависимости остаются неизменными. Это особенно полезно, когда функция передается в дочерние компоненты, которые могут оптимизировать свой рендеринг на основе ссылок на функции:

import React, { useCallback } from 'react';

function App() {
 	const handleClick = useCallback(() => {
   		console.log('Button clicked!');
 	}, []);

 	return <button onClick={handleClick}>Click me</button>;
}

В этом примере функция handleClick будет создана только один раз и не будет пересоздаваться при каждом рендере, что может помочь избежать лишних перерисовок дочерних компонентов.

Важно понимать, что useMemo возвращает значение, а useCallback — функцию. Оба помогают улучшить производительность приложения, предотвращая ненужные вычисления и рендеры, но используются в разных ситуациях.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • React

    React

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

#memo

#optimization

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