El Nuevo Enrutador de Aplicaciones de Next.js

Rate this content
Bookmark

Next.js 13.4 lanzó recientemente la versión estable del "Enrutador de Aplicaciones" - un cambio transformador para el núcleo del framework. En esta charla, compartiré por qué hicimos este cambio, los conceptos clave que debes 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

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.

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.

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 trata sobre el Enrutador de Aplicaciones de Next.js, que ha evolucionado a lo largo de los años y ahora es una característica fundamental de Next.js. La charla cubre temas como agregar componentes, obtener datos remotos y explorar diseños. También se discute el envío de datos de formulario, la simplificación del código y la reutilización de componentes. El Enrutador de Aplicaciones permite la coexistencia con el enrutador de páginas existente y permite obtener datos en el nivel de diseño utilizando los Componentes del Servidor de React.
Available in English: The New Next.js App Router

1. Introducción al enrutador de aplicaciones 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 el enrutador de aplicaciones Next.js. Hoy, voy a hacer una demostración de cómo se ve el enrutador de aplicaciones. Next.js ha evolucionado mucho a lo largo de los años. Se lanzó originalmente en 2016 y tenía una forma específica de construir. Voy a hablar sobre el viaje a través de una aplicación real de cómo llegamos al enrutador de aplicaciones hoy. El núcleo de Next.js es el enrutamiento. Lanzamos Next.js en 2016 con un enrutamiento basado en el sistema de archivos. Esto es en lo que se construyó 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 estructurar 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.

¡Woo! Como ella dijo, soy Lee y trabajo en Vercel y lidero la comunidad de Next.js. Si no has oído hablar de Next.js, es un marco de trabajo de React. Y recientemente lanzamos algo llamado el enrutador de aplicaciones Next.js. ¿Alguien ha oído hablar del enrutador de aplicaciones? Vale, eso es más manos de las que esperaba, eso es genial.

Así que para aquellos que no lo han hecho, lo que voy a hacer hoy es una demostración de cómo se ve el enrutador de aplicaciones. Por lo tanto, 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. Se lanzó originalmente en 2016 y tenía una forma específica de construir. Y voy a hablar sobre el viaje a través de una aplicación real de cómo llegamos al enrutador de aplicaciones hoy.

Lo que tengo aquí es mi editor a la izquierda ejecutando una aplicación 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 que fuera lo más fácil posible para que puedas empezar. Solo tienes que colocar un archivo en una carpeta y creará una nueva ruta. Así que aquí tengo pages/index.tsx. 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 en esto 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 con algunos diseños y entraremos en algunas de las ventajas de las nuevas cosas que hemos estado usando. Así que empecemos a estructurar un poco más esta página. En lugar de devolver una cadena aquí, vamos a devolver un componente de diseño y veremos si mi VS Code no me está dando mis autocompletados útiles, pero está bien. Podemos escribir manualmente las cosas. Está bien. Haremos import layout for components y tengo dos diseños diferentes de la aplicación. Tenemos un diseño de inicio, así que lo usaremos aquí. Ahí vamos. Vale, tenemos una barra de navegación que se compartirá en toda nuestra aplicación y luego tenemos mis facturas. Así que esta es la estructura de nuestra página de inicio.

2. Añadiendo Componentes y Obteniendo Datos Remotos

Short description:

Ahora agreguemos algunos componentes como tarjetas y tablas para mostrar estadísticas sobre nuestra cuenta. Obtendremos datos remotos utilizando la API getInitialProps 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 getServerSideProps.

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

He creado algunos componentes de interfaz de usuario para que los usemos con anticipación. Tarjetas, tarjetas, genial. Entonces tenemos algunas tarjetas que no tienen ningún data en este momento. Y luego tenemos una tabla con algunos data estáticos. El núcleo de Next.js está construido sobre React, lo que te permite componer componentes, pero con frecuencia necesitas obtener algunos data remotos y pasarlo a tus componentes. La primera API que Next.js lanzó para hacer esto en 2016 se llamaba getInitialProps. Así que vamos a usar eso para obtener algunos data y ponerlo en la página. Entonces diré homepage.getInitialProps y esto será una función asíncrona de la que queremos obtener algunos data. Así que haremos const data = await getCardData. Y luego vamos a devolver ese data a la página. Así que veamos. No, lo escribiré yo mismo porque, oh, ahí vamos. De nuestra biblioteca, de nuestra database, voy a importar esta función getCardData que va a devolver algún JSON aquí, vamos a devolver ese data desde esta función, y eso se pasa a nuestro componente React. Así que dentro de nuestro componente React, tengo props para que pueda desestructurar el data aquí. Y simplemente agregaremos algún tipo any aquí. Me encanta eso. Y luego, debajo en nuestro componente de tarjetas, podemos pasar adelante ese data pasando props. Así que haré data aquí y guardaré. Tenemos data en nuestra página. ¡Woo! Me encanta. Esto funciona. Y podemos obtener datos remotos, pero tiene algunas compensaciones o algunas cosas que tal vez no sean obvias. Esto se ejecuta en el servidor, pero también se ejecuta en las transiciones de página. Entonces, esta primera API dejó margen de mejora para aclarar cómo importar y usar estas funciones para obtener datos remotos. Así que la metamorfosis de esto, la siguiente evolución de esta API fue dividirla en dos funciones separadas. Así que exportemos la función asíncrona getServerSideProps, y 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 Conference 2023React Advanced Conference 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

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
Construyendo Sitios Web Ultrarrápidos con Next.js y Sanity.io
React Summit 2023React Summit 2023
71 min
Construyendo Sitios Web Ultrarrápidos con Next.js y Sanity.io
WorkshopFree
Nancy Du
Nataliya Ioffe
2 authors
Únete a nosotros en un masterclass práctico donde te mostraremos cómo mejorar tus habilidades de React para construir un sitio web sin cabeza de alto rendimiento utilizando Next.js, Sanity y la arquitectura JAMstack. No se requiere conocimiento previo de Next.js o Sanity, lo que hace que este masterclass sea ideal para cualquier persona familiarizada con React que quiera aprender más sobre la construcción de sitios web dinámicos y receptivos.
En este masterclass, exploraremos cómo Next.js, un framework basado en React, se puede utilizar para construir un sitio web estático con renderizado del lado del servidor y enrutamiento dinámico. Aprenderás cómo utilizar Sanity como un CMS sin cabeza para gestionar el contenido de tu sitio web, crear plantillas de página personalizadas con Next.js, utilizar APIs para integrarte con el CMS y desplegar tu sitio web en producción con Vercel.
Al final de este masterclass, tendrás una comprensión sólida de cómo Next.js y Sanity.io pueden utilizarse juntos para crear un sitio web de alto rendimiento, escalable y flexible.