Entonces, podemos preguntarle algo como, ¿deberían las aplicaciones nativas ser renderizadas por el servidor? Y luego transmitirá algo acerca de cómo las aplicaciones nativas normalmente no son renderizadas por el servidor, y cómo eso es más una cosa de la web. Porque todo esto es bastante nuevo.
Ahora, para crear la acción del servidor, tenemos otro archivo que define useServer en una función. Y esta función será extraída en el paquete del servidor, por lo que nunca se envía al cliente y se convierte en un punto final en el cliente, que podemos versionar y hacer específico de la plataforma. Y podemos renderizar texto nativo aquí, texto nativo de React, dentro de un componente recursivo que itera el flujo.
Un aspecto realmente novedoso de este enfoque del servidor en estas acciones del servidor, es que se agrupa varias veces diferentes en función de la plataforma, de modo que si el dispositivo iOS lo pings, entonces muestra la versión iOS del paquete del servidor, y si la versión Android muestra, versión Android. Y así es como sabe qué texto usar, ya sabes, si es para iOS o Android web.
Ahora, cuando un cliente hace una solicitud, se envía una carga útil RFC con suspense para mantener el flujo abierto. Tiene la representación estática de nuestro JSX raíz cargado dentro de él, una URL al cliente código necesario para que este RFC se cargue, porque dividimos el código del paquete, y se puede cargar y buscar dinámicamente, y luego el elemento de texto actualmente renderizado. A medida que avanza el flujo, se renderizará más contenido, y React actualizará el árbol con las nuevas imágenes, así que, si dijo, ya sabes, una vez, y luego una vez había una vez, entonces Y finalmente, el flujo se completará y React cerrará la conexión.
Y esto es solo una parte de un rompecabezas mucho más grande, pero es súper poderoso, porque significa que podemos usar cualquier JavaScript arbitrario, siempre que los enlaces nativos ya estén en nuestro cliente objetivo, por lo que esto es algo así como crear HTML personalizado en vivo utilizando directivas de uso del cliente y uso del servidor en todas partes. Así que te darás cuenta de que aquí no hay código nativo. Eso es solo JSON, y está delimitado por nuevas líneas, por lo que se transmite. Es bastante dulce. Y esto es solo lo básico. Podemos escalar este concepto a cualquier UI nativa.
Así que hagamos algo un poco más emocionante. Cuando se mostró por primera vez React Native, mostraron una aplicación de películas verdaderamente nativa. Así que pensé que sería divertido incorporar películas a este prototipo de alguna manera. Para inspiración, miré lo que las mejores aplicaciones de AI tenían para ofrecer. En el chat GPT-4, cuando pides películas, renderiza una lista con viñetas de markdown después de hacer ping a bing. Consulté con GPT-4-0, mismo trato. En Gemini, hace lo mismo, pero con algunas imágenes en línea y algunos enlaces en vivo. Así que básicamente solo está enviando markdown, y luego el markdown se está formateando con un formateador de markdown. Ese es su método de transporte.
Y en Xplorerc, podemos hacerlo mucho mejor. Podemos hacer coincidir cualquier consulta para buscar películas, hacer ping a una base de datos de películas, servir una tarjeta de película nativa interactiva, transmitirla al cliente con cosas como menús de UI, cualquier tipo de nueva vista nativa que baje y esté disponible en ese dispositivo. Luego podemos volver a recurrir con más información. Tenemos una acción de servidor que está obteniendo miembros del reparto y miembros del equipo de una película. Y luego incluso podemos crear eventos de calendario donde tenemos una tarjeta que luego hace ping para el permiso del calendario y abre el aviso del calendario.
Comments