Saltar al contenido
Framework Ecosystems LabsUn contrato, muchos ecosistemas, la misma prueba.

Por qué sí y por qué no — Estado del servidor en el cliente#

⬅️ Clase 089 · 📚 Parte 6

Por qué sí Por qué no Qué se paga
React El ecosistema más maduro para esto: TanStack Query es el estándar de hecho Nada en el núcleo, así que cada proyecto elige y a veces no elige nada Una dependencia grande, con su curva y su versión que mantener
Vue Pinia Colada encaja con las convenciones del framework Pinia ya está instalado, y el estado del servidor acaba dentro sin decidirlo Escribir a mano la obsolescencia que la biblioteca traía hecha
Svelte SvelteKit evita gran parte del problema cargando en el servidor Fuera de SvelteKit, el ecosistema de consultas es más pequeño Depender del metaframework para la solución más limpia
SolidJS createResource en el núcleo: cargando, error y cancelación resueltos No es una caché: sin claves, sin invalidación global Creer que ya está cubierto y descubrir el hueco tarde

🧭 Lo que este contrato no puede probar#

💡 Lo que hay que llevarse#

Hay dos especies de estado y confundirlas es el error caro:

Tratar el segundo como el primero produce siempre la misma secuencia: se guarda en un estado, funciona, y meses después alguien pregunta por qué la pantalla enseña un dato que ya no existe.

Lo que hacen TanStack Query, SWR, Pinia Colada y compañía no es guardar el dato —eso es un Map—: es gestionar el desfase. Saber cuándo la copia envejeció, servirla igual mientras llega la nueva, y borrarla cuando algo la invalidó. Son las cuatro ideas de la caché de esta clase, y caben en cuarenta líneas: lo que las bibliotecas añaden encima son las suscripciones, la deduplicación, los reintentos y las herramientas para verlo.

Nygard tiene la formulación general, hablando de sistemas integrados: toda copia de un dato remoto es una apuesta sobre cuánto tarda en cambiar [nygard-release-it]. La caché no elimina la apuesta — la hace explícita, con un plazo que alguien eligió.

Y la conclusión que abre la parte siguiente: el mejor estado del servidor en el cliente es el que no está ahí. Si el dato se carga en el servidor antes de renderizar, no hay copia que envejecer ni desfase que gestionar. Eso no siempre se puede, y cuándo se puede es la clase 093.

Fuentes#