馃 useCallback: memorizar funciones para optimizar React

useCallback en React - memorizar funciones para optimizar

馃 useCallback en React: memorizar funciones para optimizar componentes

El Hook useCallback permite memorizar funciones en React, evitando que se redefinan en cada renderizado. Esto es 煤til para optimizar componentes, especialmente aquellos que se pasan como props a componentes hijos que dependen de igualdad de referencias.


1️⃣ Sintaxis b谩sica de useCallback

const memoizedFunction = useCallback(
  () => {
    // funci贸n a memorizar
  },
  [dependencias]
);
  

Donde dependencias son los valores que, al cambiar, har谩n que la funci贸n se vuelva a crear.


2️⃣ Ejemplo pr谩ctico: contador con funci贸n memorizada

import { useState, useCallback } from "react";

function Contador() {
  const [contador, setContador] = useState(0);

  const incrementar = useCallback(() => {
    setContador(c => c + 1);
  }, []);

  return (
    <div>
      <h2>Contador: {contador}</h2>
      <button onClick={incrementar}>Incrementar</button>
    </div>
  );
}

export default Contador;
  

Ejemplo visual de useCallback

Contador: 0


3️⃣ Cu谩ndo usar useCallback

  • ⚡ Cuando pasas funciones como props a componentes hijos que dependen de igualdad de referencias.
  • 馃 Para evitar renders innecesarios de componentes memoizados (React.memo).
  • 馃摝 En funciones complejas que no necesitan redefinirse en cada render.

4️⃣ Ejemplo avanzado: optimizando componente hijo

Memorizamos la funci贸n y evitamos renderizados innecesarios del componente hijo.

import { useState, useCallback } from "react";

const Hijo = React.memo(({ incrementar }) => {
  console.log("Render del hijo");
  return <button onClick={incrementar}>Incrementar desde hijo</button>;
});

function Padre() {
  const [contador, setContador] = useState(0);

  const incrementar = useCallback(() => {
    setContador(c => c + 1);
  }, []);

  return (
    <div>
      <h2>Contador: {contador}</h2>
      <Hijo incrementar={incrementar} />
    </div>
  );
}

export default Padre;
  

5️⃣ Resumen

  • 馃 useCallback memoriza funciones y optimiza renderizados.
  • ⚡ Evita que funciones se redefinan en cada render.
  • ✅ 脷til en componentes memoizados y props que dependen de funciones.

Publicar un comentario

0 Comentarios