< volver
useMemo vs useCallback

useMemo vs useCallback: ¿Quién es quién en React?

🗓️ 2025-06-18

✍️ Autor: Daniel Suarez Dev

#react

Siempre me han echo esta pregunta en entrevistas tech y debo admitirlo en más de una ocasión me corcharon 😳 es por eso que hoy quiero ver este tema y de seguro cuando presentes una entrevista te acordarás de mi 😂.


¿Cuál es la diferencia entre useMemo y useCallback?
¿Y cuándo deberías usar uno u otro?


Spoiler: los dos sirven para memorizar cosas… pero cada uno memoriza cosas diferentes.



🧠 useMemo: memoriza valores

Cuando tienes una función que retorna un valor calculado, y no quieres que se vuelva a recalcular a cada render, usas useMemo.

✨ Ejemplo:

const App = () => {
  const [count, setCount] = useState(0);

  const expensiveComputation = useMemo(() => {
    console.log('Calculando...');
    return count * 1000;
  }, [count]);

  return (
    <div className="p-4">
      <p>Resultado: {expensiveComputation}</p>
      <button onClick={() => setCount(count + 1)}>Sumar</button>
    </div>
  );
};

👀 ¿Qué pasa aquí?



🔁 useCallback: memoriza funciones

Cuando necesitas pasar una función como prop o quieres evitar que cambie en cada render, usas useCallback.

✨ Ejemplo:

const Button = React.memo(({ onClick }: { onClick: () => void }) => {
  console.log('Botón renderizado');
  return <button onClick={onClick}>Haz clic</button>;
});

const App = () => {
  const [count, setCount] = useState(0);

  const handleClick = useCallback(() => {
    console.log('Clic!');
  }, []); // No depende de nada, así que no cambia

  return (
    <div className="p-4">
      <p>Contador: {count}</p>
      <button onClick={() => setCount(count + 1)}>Sumar</button>
      <Button onClick={handleClick} />
    </div>
  );
};

👀 ¿Qué pasa aquí?



🧪 Diferencias clave en resumen

🔍useMemouseCallback
¿Qué memoriza?El resultado de una funciónLa función en sí
¿Para qué sirve?Evitar cálculos innecesariosEvitar recreación de funciones innecesarias
¿Se usa con funciones?Sí, pero para obtener un valorSí, pero para mantener la misma referencia
Ejemplo típicoOrdenar una listaPasar un onClick a un componente hijo


🚀 ¿Y cuándo usar cada uno?

useMemo vs useCallback

🧠 Usa useMemo cuando:

🔁 Usa useCallback cuando:



📌 Conclusión

💡 Tip: Si no estás seguro si deberías usarlos, probablemente no necesitas usarlos… aún.



¿Te gustó esta explicación?
Guárdala, compártela o pásasela al que usa useMemo como si fuera useState. 😅

¿Quieres más tips de React y frontend?
¡Sígueme para más hacks dev! 😎💻

Sígueme