Ahora solo tenemos cosas renderizadas del lado del servidor. Entonces, ¿qué pasa con el cliente? Y aquí es donde viene la magia del componente del servidor. Digamos que tengo este componente de comentarios, que ya vimos, pero luego dentro tengo este use state, que muestra los comentarios solo cuando el usuario quiere verlos. Así que, es importante decir aquí que aunque se supone que esto es un componente del cliente, es completamente renderizable en el servidor, lo que significa que el servidor no va a exportar o nada si es este use state. Esta función se ejecuta solo una vez en el servidor, y siempre será falsa, lo que significa que el estado visible, y siempre habrá solo el botón.
Aunque los datos están ahí, lo que llegará al cliente, el navegador, es en realidad solo este botón. Así que, si avanzamos y si tenemos que enviar esto al cliente, tenemos que decir que no puedo realmente llamar a esta función get comments by post ID cada vez, porque cuando este estado cambia aquí, esta función se ejecutará múltiples veces, lo que significa que se creará la misma promesa múltiples veces. Así que, necesita haber un caché de la promesa, y se está volviendo realmente complicado. Así que, digamos que es una buena práctica que enviemos la promesa como una prop a los comentarios, lo que significa que queremos enviar la misma promesa cada vez al componente de comentarios. Por supuesto, tenemos que usar client. Esto es para instruir al empaquetador, básicamente para saber que esto va al cliente. Necesita ser incorporado en el paquete, porque si estamos tan, tan lejos, no tenemos un paquete en absoluto.
Todo está solo en el servidor, y no hay empaquetado. Así que, cuando estaba pasando por todo este viaje, me di cuenta de que la cadena de herramientas, en mi caso, es que tengo la carpeta de origen. Tengo un compilador que básicamente traduce mi TypeScript a JavaScript válido, y basado en eso, también está creando un paquete. Fuera de esta carpeta, estoy ejecutando mi servidor Node, y ahora cuando tengo el paquete, estoy enviando este paquete al navegador. Así es básicamente cómo se ve mi cadena de herramientas. Si uso un framework, no es nada así. Todo es realmente corto porque solo tengo mis archivos TypeScript, y luego ejecuto el servidor. Pero, ¿qué me pasa ahora? Bueno, estoy pensando en cómo implementar eso, cómo hacer que todo esto funcione.
Comments