React.memo y useMemo: Evitando Renderizados Innecesarios

Lectura
25 min~1 min lectura

React.memo y useMemo: evitando renderizados innecesarios

La optimización en React no consiste en envolver todo con memoización. Consiste en medir, encontrar renders costosos y aplicar la herramienta correcta cuando hay un beneficio real.

Diferencias clave

  • React.memo: evita re-renderizar un componente si sus props no cambiaron.
  • useMemo: memoriza el resultado de un cálculo costoso entre renders.
  • useCallback: memoriza una función para evitar referencias nuevas cuando eso importa.
const VisibleItems = React.memo(function VisibleItems({ items }) {
  return items.map((item) => <li key={item.id}>{item.name}</li>);
});

function ProductList({ products, query }) {
  const filtered = useMemo(() => {
    return products.filter((product) =>
      product.name.toLowerCase().includes(query.toLowerCase())
    );
  }, [products, query]);

  return <VisibleItems items={filtered} />;
}

Cuándo no usarlo

No uses useMemo para cálculos triviales. La memoización también tiene costo mental y técnico. Primero medí con React DevTools Profiler.

Ejercicio: optimización medida

Tomá una lista grande con filtro. Medí renders con React DevTools, aplicá useMemo al cálculo de filtrado y compará antes/después.

Checklist

  • Identificaste un render o cálculo costoso.
  • La memoización tiene dependencias correctas.
  • Podés explicar por qué mejora o por qué no hacía falta.
De lección a portfolio

Convertí esta lección en una habilidad visible para entrevistas.

Guardá el curso, completá los ejercicios y conectá esta habilidad con una ruta de empleo, data, IA, programación o marketing.

Recibí rutas y cursos nuevos

Sumate para recibir recursos orientados a empleo y portfolio.

¿Ya tenés una cuenta? Iniciá sesión