Conceptos básicos de Next.js 14
¿Qué es Next.js y por qué aprenderlo si quieres ser frontend senior?
Arquitectura de un proyecto de Next.js
Herramientas y stack utilizado en el curso
Cómo crear rutas en Next.js
Cómo crear Layout en Next.js
Cómo funciona la navegación en Next.js
Manejo de parámetros en rutas en Next.js
React Server Components en Next.js: notación "use Client"
Creación de arquitectura de landing page en Next.js
Quiz: Conceptos básicos de Next.js 14
Manejo de estilos y estáticos en Next.js 14
CSS Modules en Next.js 13
Uso de Sass en Next.js
Cómo utilizar estilos globales en Next.js
Cómo agregar archivos estáticos en Next.js
Manejo y optimización de imágenes con Next Image
Optimización del componente image en Next.js
Optimización de fuentes con Next.js
Creando estilos dinámicos aplicando condicionales en Next.js
Quiz: Manejo de estilos y estáticos en Next.js 14
Data Fetching en Next.js
Creación de tienda de Shopify para un proyecto en Next.js
Manejo de variables de entorno en Next.js
Cómo obtener información de una API con Next.js
Manejo de estado de carga con el archivo loading.tsx
Route Grouping en Next.js
Manejo de errores en la UI con el archivo error.tsx
Quiz: Data Fetching en Next.js
Next.js Avanzado
Implementando páginas de Not Found y error global
Cómo impactan los React Server Components en un proyecto en Next.js
Cuándo utilizar layout o template en Next.js
Arquitectura profesional para data fetching en un proyecto en Next.js
Next.js para backend: manejando rutas con archivos Route Handlers
Proyecto: implementando la página de tienda
Patrones de data fetching en Next.js
Proyecto: filtrando categorías de productos
Data fetching de parámetros en el servidor y cliente
Proyecto: página de producto y arreglos en el sitio
Cómo funciona el Fetch y el Caché de Next.js
Revalidando cache con revalidateTag y revalidatePath en Next.js
Cómo hacer redirects en Next.js
Proyecto: HTML dinámico en la descripción del producto
Mejorando SEO de una página en Next.js
Quiz: Next.js Avanzado
Autenticación y autorización
Manejando autenticación y autorización con Storefront APÏ de Shopify
Server Actions en Next.js
Proyecto: proceso de Sign-Up con GraphQL
Manejo de cookies para colocar un token de acceso de un proyecto en Next.js
Cómo implementar un flujo de login en un proyecto en Next.js
Validando token de acceso de usuario en un proyecto en Next.js
Proyecto: implementando el carrito de compras
Manejo de estado global con zustand en Next.js
Proyecto: agregando items al carrito de compras
Cómo integrar el checkout de Shopify a un proyecto en Next.js
Implementar middleware en proyecto en Next.js para protección de rutas
Inteligencia Artificial
Creando componente de chatbot de ventas con la SDK IA de Vercel
Implementación de un bot de ventas en una app Next.js
Performance
Optimización de carga con parallel routing en Next.js
Análisis de bundle para Next.js 14
Quiz: Performance
Frontend Ops
Edge runtime
Despliegue de un proyecto Next.js en Vercel
Mejores prácticas en arquitecturas empresariales
Quiz: Frontend Ops
Next.js es parte de tu nuevo stack
¡Has creado un proyecto en Next.js!
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Enrique Devars
Aportes 11
Preguntas 3
Para entender plenamente este tema debemos estar familiarizados con estos tres conceptos:
El codigo puede ser ejecutado tanto en el lado del server y cliente.
Por cliente se refiere: lo que el navegador solicita a traves del dispositivo del usuario y el server responde con una interface de usuario.
Por server: a la PC que almacena nuestro codigo de la aplicacion, la pc recibe una solicitud desde el cliente y este envía una respuesta.
Inicia cuando un usuario visita o interactua con la aplicación.
En resumen el usuario interactura con la app, el cliente envía solicitudes http, llegan al server, este las procesa y reponde con recursos de HTML, CSS, JS, etc, esto se renderiza al cliente.
separa el codigo de server y del cliente.
Con las convenciones “use client” y “use server” podemos definir nuestras fronteras.
Si necesitas acceder al servidor desde el cliente, envías una nueva petición al servidor en lugar de reutilizar la misma petición. Esto facilita la comprensión de dónde renderizar sus componentes y dónde colocar el Límite de Red.
Por defecto Next usa Server Components.
los react server components permiten escribir UI que puede ser renderizado y cacheado en el servidor.
Existen 3 estrategias de server rendering:
Los beneficios pueden ser:
- Data Fetching:al tener tu codigo viviendo dentro del server y a lado de un posible data store, esto hace que se reduzcan los tiempos del fetch para realizar el renderizado.
- Seguridad: Mantiene los datos y la logica del server seguros, evitando exponerlos al cliente.
- Cacheo: luego del renderizado, esta informacion se puede guardar y ser utilizada posteriormente.
- Bundles Sizes: podemos tener dependencias “precargadas” lista, evitando que el cliente use mas data de los necesario.
- Carga de la pagina inicial: El server genera html que permite al usuario visualizar la pagina inmediatamente.
- SEO y SNS: ayuda a los bots generar visualizaciones de la pagina.
- Streaming: facilita la visualizacion de pequeños bloques de la pagina, hasta que se carge toda.
- Las rutas son renderizadas en build time, los resultados pueden ser cacheados y empujados a un CDN.
- Es util cuando una ruta tiene data que no es personalizada para el usuario, como un blog o pagina de producto.
<h5>Dynamic Rendering</h5>
- Las rutas son renderizadas por cada usuario en cada request.
- Es util cuando una ruta tiene data que si es personalizada hacia el usuario, como cookies o searchParams.
- El uso de las funciones de cookies(), headers() y searchParams hacen que sea automaticamente un render dinámico en toda la ruta.
<h5>Streaming</h5>
- Habilita que progresivamente veamos UI desde el servidor, diviendolo en pequeños trozos y enviandolo por diferentes canales o "stream/buffers"
- El streaming está integrado por defecto en Next.js App Router. Esto ayuda a mejorar tanto el rendimiento inicial de carga de la página, así como la interfaz de usuario que depende de la obtención de datos más lentos que bloquearían la representación de toda la ruta. Por ejemplo, las reseñas en una página de producto.
- Para empezar a usar streaming route segments se puede utilizar Loading.tsx
Permite escribir UI interactivos que pueden ser renderizados en el lado del cliente al momento de la solicitud.
¿Cuando usarlos?
- Cuando se usen hooks com useState, effects y event listeners.
- Cuando se requiera usar Browser API.
Se puede usarlo colocando la directiva de “use client” en el archivo deseado, lo que convertida a todos los archivos que se deriven en el como client components.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?