Логотип 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 в React не используется для замены shouldComponentUpdate?

Хук useMemo используется для оптимизации производительности, запоминая результат вычисления и избегая его повторного выполнения при неизменных зависимостях. Однако он не предназначен для управления рендерингом компонентов, как это делает shouldComponentUpdate, который отвечает за решение о необходимости обновления компонента.

Подробнее

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

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

Подробнее

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

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

Почему передача нового объекта в массив зависимостей useMemo при каждом рендере не даёт эффекта мемоизации?

Как передать примитивные значения из объекта в массив зависимостей useMemo вместо ссылки на объект?

Чем поможет useMemo при оптимизации компонента с частыми обновлениями состояния?

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

  • Рейтинг:

    5

  • Сложность:

    6

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

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

useMemo сравнивает зависимости с помощью Object.is, то есть по ссылке. Если в массив зависимостей передаётся новый объект, созданный при каждом рендере, его ссылка будет отличаться от предыдущей. React считает, что зависимости изменились, и пересчитывает мемоизированное значение, что сводит на нет эффект мемоизации.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Вместо передачи объекта целиком, нужно передавать его примитивные свойства по отдельности. Например, вместо useMemo(() => fn(obj), [obj]) используйте useMemo(() => fn(obj.a, obj.b), [obj.a, obj.b]). Это гарантирует, что useMemo пересчитает значение только при изменении конкретных примитивов, а не при создании нового объекта с теми же значениями.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

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

    4

  • Сложность:

    6

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

    5

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    7

  • Рейтинг:

    2

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    6