Volver a inspiración

Optimizando el rendimiento de React

2023-02-18
8 min de lectura

React es conocido por su DOM virtual y renderizado eficiente, pero a medida que las aplicaciones crecen en complejidad, el rendimiento puede convertirse en un problema. Aquí hay algunas técnicas avanzadas para optimizar el rendimiento de tus aplicaciones React.

1. Usa React.memo para la memoización de componentes

React.memo es un componente de orden superior que memoriza el resultado del renderizado de un componente. Realiza una comparación superficial de props y solo vuelve a renderizar si las props han cambiado.


const MyComponent = React.memo(function MyComponent(props) {
  /* renderizar usando props */
});
        

2. Optimiza las dependencias de useEffect

Ten cuidado con el array de dependencias en useEffect. Incluir dependencias innecesarias puede hacer que el efecto se ejecute con más frecuencia de lo necesario.


useEffect(() => {
  // Este efecto solo se ejecutará cuando count cambie
}, [count]);
        

3. Usa useMemo y useCallback

useMemo memoriza el resultado de un cálculo, mientras que useCallback memoriza una función. Ambos pueden evitar recálculos innecesarios o recreaciones de funciones.


const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
const memoizedCallback = useCallback(() => doSomething(a, b), [a, b]);
        

4. Virtualiza listas largas

Para listas largas, usa bibliotecas de virtualización como react-window o react-virtualized para renderizar solo los elementos que están actualmente visibles en el viewport.

5. División de código con React.lazy

Divide tu código en trozos más pequeños que se cargan bajo demanda usando React.lazy y Suspense.


const LazyComponent = React.lazy(() => import('./LazyComponent'));

function MyComponent() {
  return (
    Loading...
}> ); }

6. Usa builds de producción

Siempre usa builds de producción para el despliegue. Las builds de desarrollo incluyen advertencias adicionales y herramientas de desarrollo que ralentizan tu aplicación.

7. Evita funciones inline en renders

Las funciones inline en renders crean nuevas instancias de función en cada renderizado, lo que puede llevar a renderizados innecesarios de componentes hijos.

8. Perfila y mide

Usa el Profiler de React DevTools para identificar cuellos de botella de rendimiento en tu aplicación. Mide el impacto de tus optimizaciones para asegurarte de que realmente están mejorando el rendimiento.

Aplicando estas técnicas, puedes mejorar significativamente el rendimiento de tus aplicaciones React, proporcionando una mejor experiencia de usuario y reduciendo el uso de recursos.