useMemo vs useCallback?

Middle
346 просмотров
AFK Offer AI

Оба — хуки для оптимизации, но мемоизируют разное. useMemo мемоизирует результат вычисления: useMemo(() => heavyCalc(a, b), [a, b]) — пересчитает только при смене a или b. useCallback мемоизирует саму функцию: useCallback((x) => doSomething(x, a), [a]) — возвращает ту же ссылку на функцию, пока a не изменится. useCallback нужен когда передаёшь колбэк в дочерний компонент с React.memo — иначе каждый рендер создаёт новую функцию и memo бесполезен. Не стоит пихать их везде — это преждевременная оптимизация.

Следующий вопрос

Как работает TanStack Query (React Query)?