Featured image of post useMemo y useCallback: Optimización de rendimiento en ReactFeatured image of post useMemo y useCallback: Optimización de rendimiento en React

useMemo y useCallback: Optimización de rendimiento en React

Analyze the hidden performance overhead of useMemo and useCallback in React, and establish guidelines for when to apply memoization.

useMemo memoiza valores calculados, useCallback memoiza funciones. Ambos evitan trabajo innecesario en re-renderizados.

useMemo

Solo recalcula el valor cuando cambian sus dependencias. Útil para cálculos costosos o para mantener referencias estables entre renderizados.

const sorted = useMemo(() => items.sort(), [items]);

useCallback

Devuelve la misma función a menos que cambien las dependencias. Esencial para pasar callbacks a componentes hijos memoizados.

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

Cuándo usarlos

No optimices prematuramente. Solo usa estos hooks cuando perfiles muestren un problema real. Con el React Compiler, estos hooks serán innecesarios.

Errores comunes

Arrays de dependencias incorrectos (faltantes o excesivos), memoizar valores simples, olvidar memoizar en chains de componentes.