Y luego se vuelve interactivo, pero aún un poco incómodo. Usamos React 18, que te brinda tres componentes: servidor, cliente y compartido. Lo interesante de los componentes del servidor es que no agregas nada al paquete. Aún necesitamos interactividad, por lo que usamos componentes del servidor para tareas específicas. Sin embargo, no todas las bibliotecas son compatibles y la obtención de datos puede ralentizar el sitio. React proporciona suspense para manejar componentes pesados.
Y luego se vuelve interactivo, pero aún un poco incómodo. Y supongo que lo que nos gustaría tener, especialmente para sitios de comercio, es algo más como esto, ¿verdad? Se abre y puedo comprar de inmediato.
Entonces, sí, por eso estamos usando React 18. React 18 te brinda ahora tres componentes. Los del servidor. Cliente y compartido. Y los componentes del cliente es algo que ya hacemos, ¿verdad? Usamos estado y hacemos esto, no sé, estas funciones. Y se envían al navegador. Se renderizan allí. Excepto con todas las cosas de iteración de las que hablé, que es, ya sabes, toda la magia. Los nuevos son los componentes del servidor, y estos son muy interesantes porque haces lo mismo que los componentes del cliente. Pero el resultado final es que esto es HTML que se envía directamente. Y el último es el componente compartido. Que es algo que podría estar en el cliente o en el servidor también. Pero creo que lo principal de lo que quiero hablar son los componentes del cliente y del servidor.
Lo interesante de los componentes del servidor es que no agregas nada al paquete. Así que simplemente envías HTML directamente. La forma en que los usamos en Hydrogen es que los construimos normalmente, como cualquier otro componente, pero también hacemos consultas a la base de datos. Y luego los colocamos en los componentes, y el resultado final es simplemente enviar HTML directamente al navegador. Entonces, ¿por qué no usamos componentes del servidor para todo? Porque aún necesitamos interactividad. Si quiero comprar una cantidad diferente de productos, quiero poder elegir eso y hacer un renderizado en el servidor. Debido a eso, tal vez sea demasiado. Algunas de nuestras experiencias han sido que, a medida que implementamos componentes del servidor, no todas las bibliotecas son compatibles. Ese es un problema que hemos tenido. A veces tienes que hacer malabarismos para hacer que funcionen. Un segundo aprendizaje es que, tan pronto como dimos componentes del servidor a las personas, comenzaron a hacer muchas obtenciones de datos. Esto puede llevar mucho tiempo y luego la gente dice: `¿Los componentes del servidor se supone que deben hacer que mi sitio sea más rápido, pero en realidad es más lento?` Pero es porque estamos obteniendo muchos datos. Algo que React proporciona es suspense. Entonces, lo que harías es envolver este componente que es muy pesado en suspense, y el resultado es, por ejemplo, en este ejemplo aquí, todo se renderiza, pero esa pequeña parte que podría ser un poco pesada se renderiza y sirve más tarde. Aún son difíciles de depurar.
Comments