¿Qué hace fetch data? Llama a fetch. Así que fetch ahora en React, Classic React, ha sido un nombre para ser solo, ya sabes, el fetch nativo que hicimos en Dublín. Lo que significa que puedes almacenar estos en la caché. Así que cada vez que tienes un fetch en cualquier lugar, pero ese fetch tendrá la misma entrada que otro fetch, esos no se van a duplicar. Así que data no se va a buscar dos veces, también, siempre se va a buscar una vez, y luego el resto simplemente va a recurrir a una caché.
Lo que los nombres significaban era como fetch ahora, porque va a ser del lado del servidor, se va a guardar de una manera que siempre se va a recuperar una vez en lugar de varias veces cada vez que lo extraes. Por eso es mejor re, digamos, duplicar el fetch para la misma ruta, para la misma URL de la API, en varias páginas donde lo uses, en lugar de tenerlo en la parte superior del patrón, porque realmente no importa, y es mejor, ya sabes, aislar tu obtención de data en general.
Así que, en este caso, esta es la hoja de mi árbol, porque es la última ruta que voy a recibir, y es donde voy a obtener mis data. Next, hizo algo más. Entonces, porque Next está encima de React, lo que hicimos fue mejorar fetch con dos cosas, estrategias de caché y estrategias de revalidación. Entonces, puedes escribir, te lo mostraré más tarde, pero puedes escribir el fetch de una manera que decides cómo funcionará la caché para ese único fetch o cómo funcionará la revalidación con ese único fetch, lo cual no es nativo de React, por lo que está en Next. Lo que va a hacer es simplemente tomar el resto, serializarlo de nuevo a los data, y luego simplemente puedo tener estos data extraídos.
Algo que necesito, y hablé con Tim Nelkens sobre esto hace solo un par de días, así que cuando creé este ejemplo específico, no me dejaba, era un poco más complejo que esto, por lo que podría haber sido algo más, pero no me dejaba tenerlo estático. Siempre sería dinámico por alguna razón, por lo que estaba optando por lo dinámico, y descubrimos que necesitábamos esta función para generar los patterns estáticos. Puede ser de dos maneras. Puedes generar todos los parámetros estáticos para esa ruta, o básicamente listarlos, decir, hey, las IDs de este post van a ser uno, dos, tres, cuatro, ¿verdad? Y para hacer eso, todavía puedes hacer fetch, ¿verdad? De nuevo, fetch el post, todos los posts, y luego listarlos aquí de esta manera. Esto necesita ser el mismo nombre de los patterns, necesita ser el mismo nombre dentro de estos corchetes, o puedes simplemente optar por tenerlos creados dinámicamente como parámetros estáticos, porque Next.js 13 todavía está en beta.
Hablando con Tim Nirken, estábamos pensando, ¿debería ser esto el predeterminado, porque teóricamente, esto debería ser el predeterminado, ¿verdad? Siempre deberías tener parámetros estáticos porque esto se genera estáticamente. Entonces, sí, la idea aquí es como, bueno, si Next.js 13 todavía está en beta, están decidiendo qué hacer, pero considera que si ves que de repente estás optando por no ser estático, por alguna razón, prueba este pedazo de code para ver si volverá a optar por ser estático. De nuevo, voy a dejar esto aquí solo para que sepas si quieres simplemente crear todos tus posts de blog, puedes, es posible. Pero esto es más que suficiente para optar por lo estático. Mi code está listo. Lo voy a guardar. Voy a cambiar a mi terminal. Mi terminal acaba de recargar en caliente lo que acabo de cambiar y dentro de mis componentes del servidor, ahora tengo mis posts.
Sin embargo, ¿lo dije antes? Puedes verlo aquí, ¿verdad? Este es el render. Y puedes ver cuando cambio, es justo ahora, está cambiando, 2703, 2705. Esto es dinámico. ¿Qué más puedo comprobar, oh, tan grande. Es cuando hago code, ves, hay un 200 aquí. Eso significa que no está en caché. Eso significa que cada vez va a preguntar, preguntar, preguntar de nuevo. ¿Por qué? Porque estoy en modo dev. Así que cada vez que estás como, oh, espera, ¿por qué no se opta por ser estático en modo dev? Así que voy a matar todo y déjame limpiarlo y solo construir y luego empezar. Así que construir creará un constructor de producción real. Así que todo lo que se va a generar estáticamente va a ser estático. Todo lo que todavía es dinámico, todo ISR, todo, y luego empezar es simplemente empezar. La aplicación, considera que no tiene recarga en caliente, por supuesto, así que tendré que matarlo de nuevo cuando tenga que ir al modo dev, o cuando cambie algo, siempre tengo que matarlo de nuevo y reiniciarlo porque va a producir las nuevas páginas. Listo, así que vuelvo a mi post de blog y luego mira este número, no está cambiando, ¿por qué? Porque no va a volver a buscarlo, no va a volver a renderizarlo. Y si inspecciono, lo que puedes ver, 304, en caché, en caché, en caché porque es estático.
Así que estos eran componentes del servidor, por defecto, siempre van a optar por lo estático. Y siempre van a obtener datos desde el lado del servidor. Así que el servidor va a hacer el trabajo, sin cascadas, nada de eso. Y para probarlo, pruebas la vista de producción. Vamos a ir a los componentes del cliente porque algo que, por ejemplo, en el muelle beta no está todavía, solo están como, hey, ve al SOR y comprueba el SOR o React query, cualquier cosa para simplemente pedir desde el componente del cliente para tus data. A este respecto, quería... Lo siento, no, Google, no, no, no. Hey, Google, stop. Debería haber apagado Google. Lo siento, chicos.
Comments