React Server Components (RSCs) son una poderosa herramienta para mover la lógica de renderizado costosa del cliente al servidor, especialmente útil para contenido estático o que cambia poco. Tradicionalmente, los frameworks han impuesto una estructura rígida a los RSCs, donde el servidor controla todo el árbol de componentes y define cómo se renderiza y compone la UI. Esto puede limitar la flexibilidad y obligar a los desarrolladores a adoptar un modelo 'server-first' incluso cuando no es necesario.
TanStack introduce una nueva aproximación con 'TanStack Start', que trata a los RSCs como simples streams de datos que pueden ser obtenidos, almacenados en caché y renderizados por el cliente a su conveniencia. En esencia, los RSCs se convierten en 'React Flight streams', lo que permite una mayor composabilidad y control por parte del desarrollador. Esto significa que ya no es necesario que el framework dicte cómo se crean, renderizan o recomponen los componentes del servidor.
Esta filosofía se traduce en una API más simple y flexible. En lugar de una serie de convenciones y reglas, los RSCs se comportan como cualquier otro recurso de datos del servidor. Esto facilita su integración con herramientas existentes como TanStack Query, que puede utilizarse para gestionar la caché, el tiempo de validez (staleTime) y la reobtención de datos de forma transparente, sin necesidad de modificaciones especiales para RSCs. TanStack Router también se beneficia de esta aproximación, permitiendo el almacenamiento en caché de los resultados de los loaders de rutas de forma natural.
En la práctica, esto significa que puedes usar RSCs para renderizar fragmentos de UI en el servidor, como listas de productos, artículos de blog o incluso componentes complejos de diseño, y luego combinarlos en el cliente para crear la interfaz final. Esto mejora el rendimiento inicial de la aplicación, reduce la carga del cliente y permite una mayor flexibilidad en la composición de la UI. La clave es que el desarrollador tiene el control sobre cómo y cuándo se obtienen y renderizan estos fragmentos, sin estar atado a las restricciones de un framework.
En resumen, TanStack Start libera a los RSCs de las convenciones restrictivas, permitiendo a los desarrolladores aprovechar su poder de forma granular y flexible, integrándolos de manera natural en sus flujos de trabajo existentes.
