Conceptos básicos de Next.js 14

1

Optimización de Carga Web con Next.js

2

Creación de un Proyecto Next.js con TypeScript: Paso a Paso

3

Tienda Online con Shopify y Next.js: Implementación Práctica

4

Rutas Estáticas y Dinámicas en Next.js: Cómo Implementarlas

5

Layouts y Navegación en Next.js: Implementación Práctica

6

Navegación Eficiente con el Componente Link en Next.js

7

Rutas Dinámicas y Opcionales en Next.js

8

Componentes Cliente y Servidor en Next.js: Cuándo Usar Cada Uno

9

Componentes Reutilizables en Next.js para Mejorar la Arquitectura Web

Quiz: Conceptos básicos de Next.js 14

Manejo de estilos y estáticos en Next.js 14

10

CSS Modules en Next.js: Estiliza Componentes sin Colisiones

11

Configurar Sass en Next.js para Estilos Modulares Avanzados

12

Estilos Globales con SASS: Estrategias y Buenas Prácticas

13

Agregar Archivos Estáticos en Next.js

14

Optimización de imágenes en Next.js con Next.image

15

Optimización de Imágenes con NextImage: Técnicas y Buenas Prácticas

16

Optimización de Fuentes de Google en Aplicaciones Web

17

Estilos Dinámicos en React con Classnames: Uso Práctico y Eficiente

Quiz: Manejo de estilos y estáticos en Next.js 14

Data Fetching en Next.js

18

Creación de Tienda en Shopify usando Next.js

19

Variables de Entorno en Next.js: Configuración y Uso Avanzado

20

Consumo de APIs con JavaScript: guía práctica paso a paso

21

Loading de Productos con Next.js y React Server Components

22

Implementación de Root Grouping en Next.js: Tips y Mejores Prácticas

23

Manejo de errores con React y Next.js: Implementación práctica

Quiz: Data Fetching en Next.js

Next.js Avanzado

24

Gestión Global de Errores en Next.js

25

Renderizado con React Server Components en Next.js 14

26

Diferencias entre Template y Layout en Next.js

27

Arquitectura Escalable en Aplicaciones de Software

28

Creación de APIs con Road Handlers en Next.js

29

Configuración de Colecciones en Shopify para Tiendas Virtuales

30

Patrones de Data Fetching en Next.js: Secuencial y Paralelo

31

Filtrado de productos en Shopify usando JavaScript APIs

32

Rutas Dinámicas y Búsquedas en React con Hooks

33

Implementación de Componentes Presentacionales en React

34

Optimización de Caché en Next.js: Tipos y Estrategias

35

Revalidación de Caché en Next.js: Uso de Tags y Paths

36

Redirecciones en Next.js: Uso en Server y Client Components

37

Sanitización de HTML en React para prevenir vulnerabilidades XSS

38

SEO en páginas estáticas y dinámicas con Next.js

Quiz: Next.js Avanzado

Autenticación y autorización

39

API Storefront y Gestión de Tokens en Shopify

40

Uso de Server Actions en Next.js para Formularios

41

Implementación de Mutaciones GraphQL en Shopify

42

Creación de Cookies Seguras en Next.js para Autenticación

43

Implementación Completa de Flujo de Login en Node.js

44

Validación de Tokens de Acceso en Next.js con GraphQL

45

Carrito de Compras: Implementación con React y Estilos Sass

46

Estado global en Next.js 13 con Sustant

47

Carrito de Compras con React: Implementación y Estilos

48

Errores de hidratación en React y solución con Next.js Dynamic

49

Implementación de Middlewares en Next.js: Protege Rutas de Acceso

Inteligencia Artificial

50

Implementación de Chatbots con Next.js y Vercel AI SDK

51

Personalización de Chatbots con OpenAI para E-commerce

Performance

52

Rutas Paralelas en Next.js: Mejora el Rendimiento de Tus Apps

53

Análisis de bundles con Webpack Bundle Analyzer

Quiz: Performance

Frontend Ops

54

Optimización de Next.js con Edge Runtime

55

Despliegue de Aplicaciones NxJS en Vercel: Guía Práctica

56

Arquitectura de Proyectos Empresariales con Next.js

Quiz: Frontend Ops

Next.js es parte de tu nuevo stack

57

Creación de Apps con Next.js y React: Frontend y Backend

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Next.js 14

Curso de Next.js 14

Enrique Devars

Enrique Devars

Rutas Paralelas en Next.js: Mejora el Rendimiento de Tus Apps

52/57
Recursos

¿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.

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Gran clase! ¿Qué diferencia usar parallel routing de utilizar suspense? Gracias!
# Parallel Routes Parallel Routes allows you to simultaneously or conditionally render one or more pages within the same layout. They are useful for highly dynamic sections of an app, such as dashboards and feeds on social sites.
Esto me ayuda mucho en mi ecommerce, creo que le podemos agregar un skeleton template para agregarle a loader y ver que componentes tendrian que cargar.
Cuando usar services vs. server actions? Porque el resto de la communicacion con graphQL lo hicimos con server actions
Muy interesante este enfoque, a colocarlo en practica!!!!
el flow del curso parece que esta sobre un tornado.. que manera de tener un flujo aleatorio de contenido... Esto esta lejos de ser un curso..... debiera reorganizarlo y dejarlo bajo otro concepto separado por clases... no hay continuidad, no hay sendido ni proposito.
por si les pasa igual que a mi, aunque fue un descuido de mi parte. Es importante que el nombre de las carpetas de los parallel routes tenga las mismas mayusculas y minusculas
### Profesionalizando la arquitectura de un proyecto Next.js: `service/` y `config/` Para estructurar un proyecto Next.js de forma profesional, se recomienda seguir las convenciones establecidas y aprovechar las carpetas `service/` y `config/` para organizar el código y mejorar la mantenibilidad. **Carpeta** `service/` **: Agrupa la lógica de negocio:** Esta carpeta aloja la lógica independiente del frontend, como la interacción con APIs, el manejo de datos y la implementación de reglas de negocio. **Ejemplos de uso de la carpeta** `service/`**:** * `service/api.js`**:** Contiene funciones para interactuar con APIs externas o un backend personalizado. * `service/auth.js`**:** Implementa la lógica de autenticación y autorización de usuarios. **Carpeta** `config/`**:** * **Almacena configuraciones globales:** Esta carpeta guarda variables de configuración sensibles, como credenciales de API, claves de acceso a bases de datos o URLs de entornos. * **Protege la información confidencial:** Evita que la información sensible se exponga en el código fuente del frontend. * **Facilita la gestión de entornos:** Permite gestionar diferentes configuraciones para entornos de desarrollo, pruebas y producción. **Ejemplos de uso de la carpeta** `config/`**:** * `config/api.js`**:** Contiene las URLs de las APIs externas o del backend personalizado. * `config/database.js`**:** Guarda la configuración de conexión a la base de datos, como usuario, contraseña y nombre de la base de datos. * `config/env.js`**:** Define variables de entorno específicas para cada entorno (desarrollo, pruebas, producción).
## Profesionalizando la arquitectura de un proyecto Next.js: `service/` y `config/` Para estructurar un proyecto Next.js de forma profesional, se recomienda seguir las convenciones establecidas y aprovechar las carpetas `service/` y `config/` para organizar el código y mejorar la mantenibilidad. **Carpeta** `service/` **: Agrupa la lógica de negocio:** Esta carpeta aloja la lógica independiente del frontend, como la interacción con APIs, el manejo de datos y la implementación de reglas de negocio. **Ejemplos de uso de la carpeta** `service/`**:** * `service/api.js`**:** Contiene funciones para interactuar con APIs externas o un backend personalizado. * `service/auth.js`**:** Implementa la lógica de autenticación y autorización de usuarios. **Carpeta** `config/`**:** * **Almacena configuraciones globales:** Esta carpeta guarda variables de configuración sensibles, como credenciales de API, claves de acceso a bases de datos o URLs de entornos. * **Protege la información confidencial:** Evita que la información sensible se exponga en el código fuente del frontend. * **Facilita la gestión de entornos:** Permite gestionar diferentes configuraciones para entornos de desarrollo, pruebas y producción. **Ejemplos de uso de la carpeta** `config/`**:** * `config/api.js`**:** Contiene las URLs de las APIs externas o del backend personalizado. * `config/database.js`**:** Guarda la configuración de conexión a la base de datos, como usuario, contraseña y nombre de la base de datos. * `config/env.js`**:** Define variables de entorno específicas para cada entorno (desarrollo, pruebas, producción). **Recomendaciones adicionales:** * **Utilizar nombres descriptivos:** Asignar nombres claros y concisos a las carpetas, archivos y funciones para mejorar la legibilidad del código. * **Documentar el código:** Agregar comentarios explicativos para describir la funcionalidad de las funciones y variables. * **Aprovechar herramientas de linting:** Implementar herramientas como ESLint y Prettier para mantener la consistencia y el estilo del código. * **Seguir las mejores prácticas de desarrollo:** Aplicar prácticas recomendadas para JavaScript y React para garantizar la calidad y la escalabilidad del código. Al adoptar estas prácticas y aprovechar las carpetas `service/` y `config/`, se puede estructurar un proyecto Next.js de forma profesional, organizada y mantenible, facilitando la colaboración entre desarrolladores y mejorando la longevidad del proyecto.