Implementación de Parallel Routing en Next.js para Cargas Independientes

Clase 52 de 57Curso de Next.js 14

Resumen

¿Qué es el Parallel Routing en Next.js?

Cuando hablamos de rendimiento en Next.js, uno de los conceptos destacados es el Parallel Routing. Este método permite dividir las páginas para que carguen información de manera independiente mediante loaders diferentes. ¿El resultado? Una experiencia de usuario más fluida y reducción del bloqueo en la interfaz hasta que las solicitudes se completen.

¿Cómo funciona el Parallel Routing?

En situaciones donde realizamos múltiples solicitudes a APIs, comúnmente enfrentamos un problema: la interfaz de usuario se queda esperando hasta que se resuelven todas las solicitudes. Sin embargo, el Parallel Routing permite que cada parte de la página procese su información por separado y de manera paralela.

Para ilustrar su aplicación, se puede usar una página de usuario (My Account) que contiene detalles del usuario y órdenes realizadas. Al dividir estos apartados en rutas paralelas, se logra que cada uno cargue su información de forma independiente.

Implementación práctica de Parallel Routing

Creación del entorno

Para empezar, se puede trabajar sobre una página ya existente agregando la lógica necesaria para el Parallel Routing.

  • Componentes principales:
    • userinfo y ordersinfo como rutas paralelas.
    • Uso de loaders para gestionar las solicitudes de API.
  • Estructura de carpetas: crear carpetas con nomenclatura especial, usando el prefijo @ para identificar Parallel Routes.

Configuración del layout

Un punto crítico en la implementación es definir un layout que gestione las rutas paralelas:

interface MyAccountLayoutProps {
  children: React.ReactNode;
  ordersInfo: React.ReactNode;
  userInfo: React.ReactNode;
}

// Renderización del layout
return (
  <>
    {props.children}
    {props.userInfo}
    {props.ordersInfo}
  </>
)

Casos de uso ideales para Parallel Routing

El uso del Parallel Routing es especialmente beneficioso cuando:

  • Se realizan múltiples llamados a API, particularmente si son pesados.
  • La optimización de las queries no es suficiente, y las respuestas tardan más tiempo.
  • Se busca reducir el tiempo de espera y mejorar la experiencia del usuario en aplicaciones complejas.

Aunque no siempre se nota la diferencia en aplicaciones bien optimizadas con GraphQL, implementar Parallel Routing puede marcar una gran diferencia en entornos donde los datos son extensos y las consultas son lentas.

Recomendaciones prácticas

  • Utilizar loaders genéricos: reusar loaders en distintas partes del proyecto asegura una mejor gestión de las cargas.
  • Evaluar el caso específico: en entornos donde las consultas son rápidas, el Parallel Routing podría no ser necesario, pero en aplicaciones con endpoints pesados, resulta esencial.
  • Optimización continua: siempre busca almacenar en caché, mejorar las queries y minimizar el peso de las respuestas para un rendimiento óptimo.

En conclusión, Parallel Routing es una herramienta poderosa dentro de Next.js que, cuando se utiliza adecuadamente, puede resultar en aplicaciones web de alta eficiencia y gran usabilidad. Considera su implementación según la complejidad y demandas de tus proyectos.