TGViewer
React React @react_lib · 2.66K subscribers
Post #738 1.49K
useMemo и useCallback - когда они реально помогают, а когда вредят

Сегодня разберём больную тему: “обмазался мемоизацией - стало хуже”.

Когда useMemo/useCallback НЕ нужны

🔹Значение/функция не передаются в memo - компоненты и не используются как deps.
🔹Вычисление дешёвое (например, arr.map на 20 элементов).
🔹Ты добавил их “на всякий случай”.

Побочный эффект: ты усложняешь код и добавляешь лишнюю работу React (хранить кеш, сравнивать deps).

Когда они реально спасают

1. Стабильные пропсы для React.memo


const onSelect = React.useCallback((id) => {
setSelected(id);
}, []);


2. Тяжёлые вычисления


const filtered = React.useMemo(() => heavyFilter(items, query), [items, query]);


3. Объекты в deps (чтобы не триггерить эффекты/хуки)


const params = React.useMemo(() => ({ q: query, page }), [query, page]);


Быстрый чек-лист перед добавлением мемоизации

🔹Это реально горячая точка? (профайлер/замеры)
🔹Без мемоизации есть лишние рендеры дочерних memo?
🔹Или это просто “красивее выглядит”?

✍️ @React_lib
  • 👍 3
More from @react_lib
  1. Sep 11, 2026🚨 Избегай монолитных компонентов, которые объединяют в себе отображение, управление состо…
  2. Sep 7, 2026❌ Избегайте использования нескольких переменных состояния для отслеживания статуса. ✅ Вмес…
  3. Aug 31, 2026Сегодня написал пост на тему, которая регулярно бьёт по скорости разработки: почему React-…
  4. Aug 24, 2026❌ Избегайте «прокидывания» пропсов (prop-drilling) для расширения компонентов ✅ Вместо это…
  5. Aug 23, 2026🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.r…
  6. Aug 21, 2026⚛️ Реактивность - это просто (и всего 35 строк кода) Мы часто воспринимаем реактивность в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →