Regeneración Estática Incremental: Sitios Estáticos Potenciados

Rate this content
Bookmark

Los sitios estáticos son geniales. Son rápidos, económicos, seguros y fáciles de mantener. Pero generar activos estáticos es un proceso que lleva cada vez más tiempo a medida que nuestro sitio se vuelve más grande. Hablaremos sobre ISR, una característica que el framework Next.js nos ofrece para generar páginas estáticas en tiempo de ejecución.

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

FAQ

Una página web estática es aquella que se entrega al navegador del usuario tal como está almacenada, sin generar contenido dinámicamente. Está compuesta por archivos HTML, CSS y JavaScript.

Las páginas web estáticas son rápidas, económicas, fáciles de mantener, seguras, fáciles de escalar y estables, ya que no requieren cálculo ni procesamiento en cada solicitud.

La regeneración estática incremental es una función de Next.js que permite actualizar páginas estáticas en segundo plano para cada usuario, después de un tiempo preestablecido, sin tener que regenerar todo el sitio.

Las páginas web dinámicas generan parte de su contenido de forma dinámica en el servidor según ciertas condiciones o lógica, mientras que las páginas estáticas entregan el mismo contenido pregenerado a todos los usuarios.

Existen tres métodos principales: renderizado en el lado del servidor, donde el contenido se genera dinámicamente por el servidor; renderizado en el lado del cliente, donde el contenido se genera mediante JavaScript en el navegador; y la generación de sitios estáticos, donde el contenido se pregenera durante el tiempo de compilación.

Facundo se centra en Next.js, un marco de trabajo de React, para la creación de interfaces de usuario y la generación de sitios estáticos, así como páginas renderizadas en el lado del servidor.

La regeneración estática incremental permite actualizar páginas específicas sin necesidad de regenerar todo el sitio, lo que agiliza el proceso de compilación y mejora la eficiencia al manejar cambios frecuentes o contenido dinámico.

Facundo trabaja como ingeniero de relaciones con desarrolladores en Storyblock y es embajador de Auth0 y Prisma, además de experto en desarrollo de medios de Cloudinary.

Facundo Giuliani
Facundo Giuliani
22 min
25 Oct, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La regeneración estática incremental es una característica de Next.js que permite la generación estática por página sin reconstruir todo el sitio. Ayuda con los sistemas de gestión de contenido sin cabeza y persiste entre implementaciones. El ejemplo demuestra cómo funcionan juntos el renderizado del lado del servidor, la generación de sitios estáticos y la regeneración estática incremental. El editor visual en tiempo real permite ver los cambios de inmediato. Visita el sitio web de NetJS para una demostración de comercio electrónico y una plataforma de aprendizaje.

1. Introducción a la Regeneración Estática Incremental

Short description:

Hola a todos. Mi nombre es Facundo y hoy hablaremos sobre la regeneración estática incremental. Una página web estática se entrega al navegador del usuario exactamente como una tienda. Tenemos diferentes formas de generar contenido dinámico, como el renderizado en el lado del servidor y el renderizado en el lado del cliente. Las páginas web estáticas ofrecen beneficios como velocidad, rentabilidad, facilidad de mantenimiento, seguridad, escalabilidad y estabilidad.

Hola a todos. Mi nombre es Facundo y hoy hablaremos sobre la regeneración estática incremental.

Quiero presentarme. Como dije, mi nombre es Facundo Giuliani, soy de Buenos Aires, Argentina. Trabajo como ingeniero de relaciones con desarrolladores en Storyblock. También soy embajador de Auth0, embajador de Prisma y experto en desarrollo de medios de Cloudinary. Si quieres hablar sobre alguno de estos productos o cualquier otra cosa, puedes escribirme. Mi sitio web es fgiuliani.com y estoy en Twitter como Facundo Zurdo.

En primer lugar, quiero definir qué es una página web estática. Es una página web que se entrega al navegador del usuario exactamente como una tienda. Por lo tanto, podemos tener una página web conformada por un archivo HTML, un archivo CSS y un archivo JavaScript. Y eso se considerará una página estática. Eso no significa que el contenido de la página sea estático, pero estaremos entregando los mismos archivos a todos los usuarios que visiten nuestro sitio web. Y esa es la diferencia con una página web dinámica, donde es una página web en la que parte del contenido se genera dinámicamente cuando es necesario. Podemos generar contenido HTML sobre la marcha que entregaremos al usuario que visita nuestro sitio web dependiendo, no sé, de alguna condición o lógica que tengamos y que ejecutamos en nuestros servidores web. Tenemos diferentes formas de generar este contenido dinámico. Una de estas formas es utilizando el renderizado en el lado del servidor, donde el contenido HTML que se genera dinámicamente se realiza en el servidor web. Por lo tanto, el servidor web será el que generará el contenido HTML y entregará al usuario una página web que se verá como una página estática, pero en realidad, el contenido HTML o parte del contenido HTML se generó. Por otro lado, el renderizado en el lado del cliente es cuando el contenido HTML se renderiza directamente en el navegador utilizando JavaScript. Esto sería el caso de uso común para React, donde el contenido HTML que generamos o el marcado que generamos se basa en los componentes que tenemos en nuestra aplicación. Y cualquier otra aplicación de una sola página que podamos crear utilizando React u otros frameworks de JavaScript. Pero volvamos a la página web estática, porque si las analizamos, podemos ver que tienen diferentes beneficios que ofrecen las páginas web estáticas. Por ejemplo, las páginas web estáticas son rápidas porque simplemente entregamos archivos que se almacenan en un servidor web tal como están almacenados, por lo que no tenemos que hacer ninguna lógica para generar el contenido que queremos entregar. Son económicas porque simplemente almacenamos archivos como cualquier otro sistema de archivos. Son más fáciles de mantener porque estos archivos que creamos, no sé, probablemente escribimos el contenido en un editor de texto o algo así utilizando el método que queramos. Podemos mover un archivo de un lugar a otro, podemos implementar nuevas versiones de nuestro sitio web simplemente moviendo los nuevos archivos al servidor web, etc. Son seguras porque no ejecutamos ningún código en cada solicitud que recibimos, por lo que no tenemos que preocuparnos por la seguridad de ningún código que se ejecute porque no se está ejecutando ningún código. Es más fácil de escalar porque podemos agregar espacio de almacenamiento a nuestro servidor web y eso será suficiente para obtener más archivos y crear más páginas para nuestro sitio web. Y es estable porque no estamos realizando ningún cálculo o procesamiento en cada solicitud, simplemente entregamos archivos y eso será más estable para nuestro sitio web.

2. Introducción a la Generación de Sitios Estáticos

Short description:

Teniendo en cuenta estos beneficios de las páginas web estáticas que se crearon, apareció un nuevo concepto: la generación de sitios estáticos. Podemos generar activos estáticos en tiempo de compilación utilizando diferentes fuentes de datos, contenido, motores de plantillas, bases de datos, APIs y servicios de terceros. Next.js es un marco de trabajo de React que nos permite crear interfaces de usuario, páginas estáticas y páginas renderizadas en el lado del servidor. Podemos utilizar la generación de sitios estáticos para algunas páginas, mientras que utilizamos el renderizado en el lado del servidor o en el lado del cliente para páginas dinámicas. Next.js también proporciona rutas de API y actualización rápida en el entorno de desarrollo.

Teniendo en cuenta estos beneficios de las páginas web estáticas que se crearon, no sé, a principios de los años 90, por ejemplo, con los últimos marcos de trabajo y herramientas que se desarrollaron en los últimos años, apareció un nuevo concepto. El concepto de generación de sitios estáticos, que es compilar y renderizar una aplicación web en tiempo de compilación, generando activos estáticos como archivos HTML, JavaScript y CSS. Por lo tanto, tendremos diferentes fuentes de datos, contenido, motores de plantillas, bases de datos, APIs y servicios de terceros, y podemos generar la lógica que creará el contenido HTML para nuestro sitio web y utilizaremos un generador de sitios estáticos para ejecutar un proceso de compilación para nuestro proyecto y generar activos estáticos que serán nuestro sitio web. Estos activos estáticos que desplegaremos en el servidor web más tarde se generan cuando ejecutamos un proceso de compilación con el generador de sitios estáticos y todo el contenido dinámico que generamos utilizando los diferentes recursos de procesamiento y datos que tenemos se analizará y, digamos, se renderizará en tiempo de compilación. Por lo tanto, podemos estar seguros de que cuando los usuarios visiten nuestro sitio web, verán activos estáticos, páginas estáticas y quiero decir que estamos utilizando los beneficios de los sitios estáticos pero utilizando marcos de trabajo y herramientas de los últimos años. Hay varios generadores de sitios estáticos, hoy me centraré en Next.js, que es un marco de trabajo de React que nos permite crear interfaces de usuario, páginas estáticas y páginas renderizadas en el lado del servidor. Por lo tanto, podemos trabajar a nivel de página, digamos, podemos crear archivos JavaScript para cada página que tendremos en nuestro sitio web o podemos crear rutas dinámicas que generarán diferentes páginas que siguen ciertos criterios o ciertas URL, digamos, y podemos utilizar a nivel de página o diferenciando cada página, cómo queremos renderizar el contenido para ella. Por lo tanto, podemos tener generación de sitios estáticos para algunas de las páginas en nuestro sitio web, digamos que tenemos, por ejemplo, un blog, podemos utilizar la generación de sitios estáticos para generar la página de inicio de nuestro blog y luego una página por artículo o por publicación de blog, digamos, ya que el contenido que expondremos en nuestra publicación de blog siempre será el mismo y para todos los visitantes de nuestro sitio web, podemos generarlos de antemano y en tiempo de compilación, generar páginas estáticas y activos estáticos que desplegaremos en el servidor web y estarán disponibles para ser visitados por nuestros visitantes. Pero también podemos tener, no sé, páginas dinámicas en nuestra plataforma o nuestro sitio web y podemos utilizar el renderizado en el lado del servidor en esos casos o el renderizado en el lado del cliente dependiendo de lo que necesitemos. Quiero decir, el renderizado en el lado del cliente sería como el React regular, pero también podemos utilizar el renderizado en el lado del servidor, por lo que el servidor devuelve una página con un contenido HTML dinámico que se creó al vuelo pero en el servidor. También podemos tener rutas de API en Next.js para ejecutar código, como lo hacen las funciones sin servidor, por lo que pueden devolver servicios o consumir APIs utilizando rutas de API. Y una de las otras características interesantes que tiene Next.js es que tendremos una actualización rápida en el entorno de desarrollo. Por lo tanto, si estamos utilizando, por ejemplo, la generación de sitios estáticos, eso no significa que cada vez que apliquemos un cambio en el contenido o el código de nuestro sitio web, debamos ejecutar el proceso de compilación nuevamente. El código se cambiará, por ejemplo, y los cambios aparecerán automáticamente en nuestro navegador mientras trabajamos localmente. Por lo tanto, vemos que podemos crear sitios estáticos pero utilizando nuevas herramientas y diferentes fuentes de datos y motores de plantillas, etc., todo en tiempo de compilación. Nuevamente, volviendo al mismo ejemplo, podemos crear un sitio de blog con muchos artículos de blog renderizando todo el contenido que necesitamos de antemano y desplegando activos estáticos, pero esto tiene un problema porque, um, cuando comenzamos a crear más y más artículos y publicaciones de blog, etc., y nuestro sitio web se vuelve más grande, el tiempo que necesitaremos para generar

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

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.
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
React Summit Remote Edition 2021React Summit Remote Edition 2021
43 min
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
Top Content
Redwood JS is a full stack React app framework that simplifies development and testing. It uses a directory structure to organize code and provides easy data fetching with cells. Redwood eliminates boilerplate and integrates Jest and Storybook. It supports pre-rendering and provides solutions for authentication and deployment. Redwood is a cross-client framework that allows for building web and mobile applications without duplicating work.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced 2023React Advanced 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
El Nuevo Router de Aplicaciones Next.js
React Summit 2023React Summit 2023
27 min
El Nuevo Router de Aplicaciones Next.js
Top Content
Today's Talk is about the Next.js App Router, which has evolved over the years and is now a core feature of Next.js. The Talk covers topics such as adding components, fetching remote data, and exploring layouts. It also discusses submitting form data, simplifying code, and reusing components. The App Router allows for coexistence with the existing pages router and enables data fetching at the layout level using React Server Components.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
The Talk covers the speaker's personal journey into server-side rendering (SSR) and the evolution of web development frameworks. It explores the use of jQuery for animations in SSR, the challenges faced in integrating React with Umbraco, and the creation of a custom SSR framework. The Talk also discusses the benefits of Next.js and the use of serverless artifacts for deployment. Finally, it highlights the features of Astro, including its function per route capability.
Una Saga de Problemas de Renderizado Web
Vue.js London 2023Vue.js London 2023
28 min
Una Saga de Problemas de Renderizado Web
This Talk discusses the problems faced in building and rendering web applications, different rendering methods and strategies, and the benefits of the Yamstack architecture. It covers server-side rendering, static site generation, incremental static regeneration, and edge rendering. The speaker demonstrates how to build a static site using a Hello CMS and the JAMstack architecture. Other topics include connecting Storyboard with a Nuxt application, mock data, hybrid rendering, and handling I18N with a static site generator.

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