mayores costos de mantenimiento, porque tendrás que mantener un servidor. Y esto es costoso. Entonces, tienes que
scale el servidor horizontalmente, por ejemplo, si quieres agregar más servidores para servir tu aplicación, porque necesitas
scale, o necesitas agregar más potencia al servidor que ya tienes si quieres
scale verticalmente. Eso depende, por supuesto, de cómo quieras
scale tus aplicaciones. Entonces, hay una tercera opción que vamos a explorar, que se llama generación de sitios estáticos. Entonces, al igual que
server side rendering, esto es lo que obtienes cuando solicitas una página generada por un sitio estático. Entonces, básicamente tan pronto como haces una solicitud, no necesitas renderizarla del lado del servidor, porque ya la renderizaste durante el tiempo de construcción. Entonces, servirás tu aplicación como archivos estáticos directamente al navegador. Este enfoque tiene pros y contras, por supuesto, una ventaja es que es súper fácil de
scale, y eso es porque de nuevo, no necesitas un servidor. Ya tienes activos estáticos, los pones en un CDN, en S3, en donde quieras, en un bucket, y simplemente los sirves como activos estáticos, porque no necesitas renderizar la página cada vez que recibes una solicitud. Entonces, eso lleva a rendimientos excepcionales, porque la página está lista, no necesitas renderizarla ni en el lado del cliente ni en el lado del servidor. Entonces, la página está hecha, solo tienes que transferirla. Es realmente seguro porque no tienes un servidor, así que no hay forma de atacar al servidor directamente, así que eso es otra cosa a tener en consideración. Por supuesto, de nuevo, tiene algunas contras. Veámoslos. Entonces, no se permite contenido dinámico en el lado del servidor, porque no tienes un servidor, así que no puedes renderizar cosas específicas para un usuario específico en el servidor, porque no tienes un servidor en absoluto. Se basa en la renderización del lado del cliente para todas las partes dinámicas de tu aplicación. Entonces, por ejemplo, si estás en Instagram y estás desplazándote por el feed, podrías generar la página del feed con la renderización del lado del cliente, lo siento con la generación de sitios estáticos, pero eventualmente tendrás que esperar a que el cliente entienda quién es el usuario que ha iniciado sesión y luego renderizar el contenido que es específico para ellos. Y otra cosa, que es realmente molesta, diría yo, es que si necesitas cambiar algo, por ejemplo, un error tipográfico en la página de inicio, tendrás que recargar y reconstruir y redistribuir toda la aplicación. Eso se puede solucionar con la regeneración estática incremental, pero lo veremos en detalle más adelante. Entonces, una cosa agradable acerca de
React es que no tienes que comprometerte, no tienes que elegir una estrategia de renderización para todo el sitio web. Pero puedes hacer eso de manera granular en la página, cuando básicamente renderizas la página individual. Esto se llama renderización híbrida. Entonces, básicamente podrías decir, está bien, la página de inicio de este sitio web será una página generada estáticamente. Si estás en un blog, la página de publicación puede ser generada dinámicamente con la renderización del lado del servidor, por ejemplo. Eso es genial. Y algunas partes de la aplicación pueden ser renderizadas solo en el lado del cliente. Entonces, puedes elegir cuánto tiempo básicamente el usuario tiene que esperar antes de evaluar el contenido. Veamos en detalle a qué me refiero con esperar. Entonces, por ejemplo, esto es renderización del lado del cliente, ¿verdad? Hacemos una solicitud y tan pronto como hacemos la solicitud, el servidor o el CDN nos enviará una página vacía. Tan pronto como el paquete de
JavaScript que contiene la aplicación
React se ejecuta, comenzaremos a ver la aplicación montándose en el navegador. Entonces, como puedes ver, el servidor será realmente rápido en enviar una respuesta,
Comments