React Intermedio: Patrones y Optimización
Texto Leccion
React.memo y useMemo: Evitando Renderizados Innecesarios
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
Tiempo de estudio
25 Min
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.
Texto Lessons
#1
Custom Hooks: Abstrayendo Lógica Compleja
#2
Context API: Estado Global sin Complejidades
#3
React.memo y useMemo: Evitando Renderizados Innecesarios
#4
Compound Components: Composición Inteligente
#5
useReducer: Máquinas de Estado para Componentes
#6
Code Splitting: Carga Perfumada para Mejores Experiencias
#7
Render Props: Compartiendo Lógica Visual
#8
Patrón Provider: Inyección de Dependencias
#9
ErrorBoundary React: ejemplo práctico y fallback
#10
High Order Components: Envolviendo Funcionalidad
#11
Arquitectura de Estado: Organización Escalable
#12
Testing con React Testing Library: Pruebas Centradas en el Usuario
Ver full lessons
Revisar curso learning pagina