Code Splitting con React.lazy y Suspense

Optimiza tiempos de carga inicial dividiendo bundles y cargando componentes bajo demanda con React.lazy y Suspense.

En apps grandes, enviar todo el JavaScript en la carga inicial penaliza Time to Interactive y experiencia en redes lentas.

Code splitting divide el código en chunks para cargar solo lo necesario en cada momento.

React.lazy permite importar componentes de forma diferida, y Suspense define qué mostrar mientras ese chunk llega.

La clave no es dividir por dividir, sino identificar pantallas o módulos pesados que no deben bloquear el arranque.

  • Reducir JS inicial acelera primer render útil, especialmente en dispositivos modestos.
  • Separar rutas o módulos pesados evita que usuarios descarguen código que quizá nunca usarán.
  • Esto mejora no solo velocidad percibida, también consumo de datos en móvil.
  • Combinar splitting con caching de chunks puede mejorar visitas recurrentes.
  • Import dinámico + Suspense = carga diferida controlada.

Qué ganas con code splitting

Reducir JS inicial acelera primer render útil, especialmente en dispositivos modestos.

Separar rutas o módulos pesados evita que usuarios descarguen código que quizá nunca usarán.

Esto mejora no solo velocidad percibida, también consumo de datos en móvil.

Combinar splitting con caching de chunks puede mejorar visitas recurrentes.

Patrón base con React.lazy

Import dinámico + Suspense = carga diferida controlada.

Criterios de implementación

Divide por valor de negocio y comportamiento de navegación, no por moda.

Si fragmentas demasiado, puedes introducir latencia repetida en navegación interna.

El equilibrio ideal depende del patrón real de uso de tu aplicación.

  • Rutas poco frecuentes candidatas a lazy.
  • Módulos de administración o analytics suelen pesar más.
  • Fallbacks breves y claros para evitar parpadeos molestos.
  • Mide con Lighthouse/DevTools antes y después.
React
21

Code Splitting con React.lazy y Suspense

Optimiza tiempos de carga inicial dividiendo bundles y cargando componentes bajo demanda con React.lazy y Suspense.

Código del tema: Componentes, estado y render declarativo

📘 Teoría

Qué ganas con code splitting

Reducir JS inicial acelera primer render útil, especialmente en dispositivos modestos.

1

Separar rutas o módulos pesados evita que usuarios descarguen código que quizá nunca usarán.

2

Esto mejora no solo velocidad percibida, también consumo de datos en móvil.

3

Combinar splitting con caching de chunks puede mejorar visitas recurrentes.

Patrón base con React.lazy

Import dinámico + Suspense = carga diferida controlada.

Criterios de implementación

Divide por valor de negocio y comportamiento de navegación, no por moda.

Si fragmentas demasiado, puedes introducir latencia repetida en navegación interna.

El equilibrio ideal depende del patrón real de uso de tu aplicación.

  • Rutas poco frecuentes candidatas a lazy.
  • Módulos de administración o analytics suelen pesar más.
  • Fallbacks breves y claros para evitar parpadeos molestos.
  • Mide con Lighthouse/DevTools antes y después.

🧪 Aprende probando

Ejemplo Ejemplo: rutas lazy en dashboard Carga diferida de páginas secundarias para aligerar bundle inicial.

🏁 Retos

Reto Reto: convierte import estático a lazy Sustituye la importación directa de `AdminPage` por `React.lazy`.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre React.

Test de React

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com