Pero en ese momento también recibimos muchas solicitudes sobre esto, uh, extraño router de la aplicación Next.js y honestamente en este punto no había jugado con él. Y pensé, sí, está bien, probémoslo.
Y aquí llegamos al punto en el que tengo que decir algo sobre mis diapositivas. Estas diapositivas son una aplicación de router de Next.js. Todo lo que veremos aquí no es un video, sino la aplicación real y yo haciendo trucos super sucios para mostrarles lo que está pasando en el servidor y lo que está pasando en el cliente al mismo tiempo.
Así que vamos a nuestra siguiente diapositiva, esa diapositiva va a usar la consulta de usuarios de Ben y esperemos, uh, sí, esperemos que la red de la conferencia esté ahí y que la solicitud se complete en algún momento. Um, por supuesto que no, uh, no, no. Sí, perfecto. Perfecto. Uh, así que como teníamos una búsqueda en el navegador de eso está bien, ¿verdad? Uh, y estaba realmente feliz. Como que ya terminamos aquí. No tenemos que hacer nada extra para soportar, uh, para soportar la aplicación del router y luego refresqué la página.
Y después de que refrescamos la página, déjame volver a pantalla completa. De repente, esa misma solicitud ocurre en el servidor y en el navegador. Y esto es también algo que realmente me irrita. Uh, como, especialmente desde que redacté estas diapositivas, uh, se ejecutan al mismo tiempo, como todos los experimentos que hice en el pasado, se ejecutarían en el servidor, el servidor terminaría y luego se ejecutarían en el cliente. Pero aparentemente encontré el caso límite de reproducción aquí para tener un componente renderizando, ambos entornos a la vez. Voy a estar depurando eso durante semanas a partir de ahora.
Um, pero el problema principal es el mismo. El componente se ejecuta en ambos lugares y busca data en ambos lugares. Y en realidad esa data ni siquiera se transporta del servidor al navegador, por lo que el servidor hace una solicitud y la descarta y no sale nada bueno de ella. Así que obviamente eso no es algo bueno. Así que de repente estamos en territorio de SSR. Queríamos hacer eso en un momento posterior. No tenemos la oportunidad de hacer eso en un momento posterior. Tenemos que hacerlo ahora. Así que el primer pensamiento por supuesto es hagamos SSR como siempre hemos estado haciendo SSR. Déjame refrescar la página para que ese estado de carga en la parte inferior desaparezca porque ese es mi truco para hacer que esa data se transporte.
Um, así que SSR en el viejo mundo era como antes de que el árbol de React se renderizara realmente, así que en Xjs sería como en obtener props del lado del servidor o algo así que, nos enganchamos, ejecutamos nuestro propio código que significa que creamos una instancia de cliente Apollo ejecutamos obtener data del árbol, uh, que renderiza ese componente con un proveedor de Apollo fuera de él y pasa esa instancia de cliente, esa renderizaría todo el árbol, desencadenaría toda la búsqueda de data dentro de ese árbol, nos daría como una promesa que podemos esperar hasta que toda la carga en ella esté terminada. Y luego repetimos eso, eso realmente sucede internamente en obtener data del árbol.
Comments