El Nuevo Router de Aplicaciones Next.js

Rate this content
Bookmark

Next.js 13.4 recientemente lanzó la versión estable del "Router de Aplicaciones" - un cambio transformador para el núcleo del marco. En esta charla, compartiré por qué hicimos este cambio, los conceptos clave a conocer, y por qué estoy emocionado por el futuro de React.

This talk has been presented at React Summit 2023, check out the latest edition of this React Conference.

FAQ

La primera API de obtención de datos de Next.js fue 'getInitialProps', lanzada en 2016.

GetServerSideProps mejora la claridad de obtener datos en el lado del servidor, indicando explícitamente que la función se ejecuta en el servidor y envía información a los componentes.

El nuevo enrutador de aplicaciones busca resolver desafíos como la obtención de datos lenta, la gestión de estados de carga, y la integración de datos y UI, simplificando la arquitectura de Next.js.

GetServerSideProps permite que los datos sean frescos en cada solicitud o pre-renderizados durante la construcción, mejorando la eficiencia de carga y actualización de la página.

No es necesario migrar inmediatamente; ambos sistemas pueden coexistir y el enrutador de páginas seguirá siendo mantenido y actualizado.

Las acciones de servidor permiten ejecutar funciones directamente en el servidor, simplificando el código y eliminando la necesidad de rutas de API separadas.

Next.js es un marco de trabajo basado en React que permite la creación de aplicaciones web.

El enrutador de aplicaciones Next.js es una nueva funcionalidad lanzada para mejorar la gestión de rutas y la carga de datos en las aplicaciones Next.js.

Lee Robinson
Lee Robinson
27 min
02 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy es sobre el Router de Aplicaciones Next.js, que ha evolucionado a lo largo de los años y ahora es una característica central de Next.js. La charla cubre temas como agregar componentes, obtener datos remotos y explorar diseños. También discute la presentación de datos de formularios, la simplificación del código y la reutilización de componentes. El Router de Aplicaciones permite la coexistencia con el router de páginas existente y permite la obtención de datos a nivel de diseño utilizando Componentes de Servidor React.
Available in English: The New Next.js App Router

1. Introducción al Router de Aplicaciones de Next.js

Short description:

Hoy, voy a hacer algo un poco diferente porque mi charla será completamente en VS Code. Soy Lee y trabajo en Vercel y lidero la comunidad de Next.js. Recientemente lanzamos algo llamado Router de Aplicaciones de Next.js. Hoy, voy a hacer una demostración de cómo se ve el Router de Aplicaciones. Next.js ha evolucionado mucho a lo largo de los años. Fue lanzado originalmente en 2016 y tenía una forma específica de construcción. Voy a hablar sobre el viaje a través de una aplicación real de cómo llegamos al Router de Aplicaciones hoy. El núcleo de Next.js es el enrutamiento. Lanzamos Next.js en 2016 con enrutamiento basado en el sistema de archivos. Esto es en lo que se basó Next.js hace seis años. Vamos a construir un panel de control de aplicaciones internas que muestra una lista de facturas y tiene algunas páginas de configuración con diseños. Comencemos a esbozar un poco más esta página. Usaremos el diseño de inicio para la barra de navegación y las facturas. Esta es la estructura de nuestra página de inicio.

Hoy, voy a hacer algo un poco diferente porque mi charla será completamente en VS Code. ¡Woo! Entonces, como ella dijo, soy Lee y trabajo en Vercel y lidero la Next.js comunidad. Si no has oído hablar de Next.js, es un React framework. Y recientemente lanzamos algo llamado el Router de Aplicaciones de Next.js. ¿Alguien ha oído hablar del Router de Aplicaciones? OK, eso es más manos de las que esperaba, eso es genial.

Entonces, para aquellos que no lo han hecho, lo que voy a mostrar hoy es una demostración de cómo se ve el Router de Aplicaciones. Así que la premisa de esta charla se llama Metamorfosis de Next.js. Y el nombre de eso es porque Next.js ha evolucionado mucho a lo largo de los años. Fue lanzado originalmente en 2016 y tenía una forma específica de construcción. Y voy a hablar sobre el viaje a través de una aplicación real de cómo llegamos al Router de Aplicaciones hoy.

Entonces, lo que tengo aquí es mi editor a la izquierda ejecutando una aplicación de Next.js y luego mi navegador. Y lo primero con lo que vamos a empezar es el núcleo de Next.js, que es el enrutamiento. Lanzamos Next.js en 2016. Dijimos que nos encanta el enrutamiento basado en el sistema de archivos. Queríamos hacerlo lo más fácil posible para que empezaras. Solo tienes que soltar un archivo en una carpeta y se creará una nueva ruta. Así que tengo páginas slash index.tsx aquí. Así que si hago export default function home page y digo return React summit y guardo. Vemos React Summit. Esto es todo lo que se necesita para tener tu primera ruta disponible en tu servidor local o en producción y esto es en lo que se basó Next.js hace seis años.

Ahora, lo que vamos a construir hoy es una especie de panel de control de aplicaciones internas que muestra una lista de facturas, tiene algunas páginas de configuración que tienen algunos diseños y vamos a entrar en más algunas de las ventajas de algunas de las cosas nuevas que hemos estado usando. Así que comencemos a esbozar un poco más esta página. Así que en lugar de devolver una cadena aquí, devolvamos algún componente de diseño y veremos si mi VS code no me está dando mis auto-completados útiles, pero eso está bien. Podemos escribir las cosas manualmente. Eso está bien. Haremos import layout para componentes y tengo dos diseños diferentes de aplicación. Tenemos un diseño de inicio así que usaremos ese aquí. Ahí vamos. Bueno, así que tenemos una barra de navegación que se compartirá en toda nuestra aplicación y luego tenemos mis facturas. Así que esta es más o menos la estructura de nuestra página de inicio.

2. Añadiendo Componentes y Obteniendo Datos Remotos

Short description:

Ahora vamos a añadir algunos componentes como tarjetas y tablas para mostrar estadísticas sobre nuestra cuenta. Obtendremos datos remotos utilizando la API get initial props y los pasaremos a nuestros componentes de React. Esta API se ejecuta en el servidor y en las transiciones de página. Para mejorar esto, la API se dividió en dos funciones separadas: getinitialprops y get server side props.

Ahora, dentro de aquí, también queremos tener algunos componentes y mostrar algunas interfaces de usuario. Así que hagamos algunas tarjetas que van a mostrar algunas estadísticas sobre nuestra cuenta, tal vez cuánto dinero hay en nuestra cuenta, cuáles son las facturas y luego también haremos, oh, ahí vamos, está volviendo, está tratando de ayudarme un poco aquí. Componentes slash table, déjame importar manualmente la tarjeta también, import card from components card.

Preparé algunos componentes de UI para que los usemos con anticipación. Tarjetas, tarjetas, bien. Así que tenemos algunas tarjetas que no tienen ningún data ahora. Y luego tenemos una tabla con algunos data estáticos. Así que el núcleo de Next.js está construido en React, te permite componer componentes pero muy frecuentemente necesitas realmente obtener algunos data remotos y pasarlo a tus componentes. Así que la primera API que Next.js lanzó para hacer esto en 2016 se llamaba get initial props. Así que usemos eso para realmente obtener algunos data y ponerlos en la página. Así que diré homepage.getinitialprops y esta va a ser una función asíncrona de la que queremos obtener algunos data. Así que haremos cons data equals await get card data. Y luego vamos a devolver esos data a la página. Así que veamos. No, lo escribiré yo mismo porque oh, ahí vamos. Vale. Desde nuestra biblioteca desde nuestra database, voy a importar esta función get card data que va a devolver algún JSON aquí, vamos a devolver esos data desde esta función, y eso se envía a nuestro componente de React. Así que dentro de nuestro componente de React, tengo props por lo que puedo desestructurar data aquí. Y simplemente lanzaremos algún tipo de any aquí. Me encanta eso. Y luego, en nuestro componente de tarjetas, podemos pasar ese data pasando props. Así que haré data aquí y daré save. Tenemos data en nuestra página. ¡Woo! Me encanta. Esto funciona. Y somos capaces de obtener data remotos, pero viene con algunos compromisos o algunas cosas que tal vez no son obvias. Así que esto se ejecuta en el servidor, pero también se ejecuta en las transiciones de página. Así que esta primera API dejó espacio para mejorar cómo importarías y usarías estas funciones para obtener data remotos. Así que la metamorfosis de esto, la siguiente evolución de esta API fue dividir esto en dos chicos separados. Así que export async function get server side props, y vale, genial.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.

Workshops on related topic

AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Crea un sitio web editable visualmente con Next.js utilizando React Bricks, con blog y comercio electrónico
React Summit 2023React Summit 2023
139 min
Crea un sitio web editable visualmente con Next.js utilizando React Bricks, con blog y comercio electrónico
Top Content
WorkshopFree
Matteo Frana
Matteo Frana
- React Bricks: por qué lo construimos, qué es y cómo funciona- Crea una cuenta gratuita- Crea un nuevo proyecto con Next.js y Tailwind- Explora la estructura del directorio- Anatomía de un Brick- Crea un nuevo Brick (Texto-Imagen)- Añade un título y descripción con edición visual RichText- Añade una imagen con edición visual- Añade controles de barra lateral para editar props (relleno y lado de la imagen)- Anidación de Bricks utilizando el componente Repeater- Crea un brick de galería de imágenes- Publica en Netlify o Vercel- Tipos de página y campos personalizados- Acceso a los valores meta de la página- Internacionalización- Cómo reutilizar contenido en varias páginas: Historias y incrustaciones- Cómo crear un comercio electrónico con datos de productos de una base de datos externa y páginas de aterrizaje creadas visualmente en React Bricks- Características empresariales avanzadas: permisos flexibles, estructura bloqueada, componentes visuales personalizados
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Construyendo Componentes de Servidor Reutilizables en NextJS
React Summit US 2023React Summit US 2023
88 min
Construyendo Componentes de Servidor Reutilizables en NextJS
Workshop
Will Bishop
Mettin Parzinski
2 authors
React continúa evolucionando su capacidad beta, los Componentes de Servidor de React, y continúan desarrollándolos en asociación con marcos como NextJS.En esta masterclass, los asistentes aprenderán qué son los Componentes de Servidor de React, cómo construirlos y usarlos eficazmente en NextJS, y se centrarán en una de las principales ventajas de React/NextJS: la reutilización a través de componentes.También cubriremos tecnologías beta relacionadas habilitadas por el directorio `app`, como los layouts anidados y las acciones del servidor (capacidad alfa/experimental).¡Únete a nosotros para esta masterclass práctica de 120 minutos!Tecnologías:
React, JavaScript/Typescript, NextJS, Miro