Los cimientos de la reactividad: signals y observables, derivación, inmutabilidad, sincronización, el estado del servidor, la URL, formularios y local-first.
Cada nivel construye sobre el anterior. Sin saltos, sin huecos.
La visión aérea de la reactividad: primitivos, derivación, inmutabilidad, el estado del servidor y las arquitecturas. El mapa mental de toda la categoría.
Qué es "estado" y por qué es la mayor fuente de complejidad en una app; estado esencial vs accidental, y la meta de domarlo.
Las clases de estado: local de UI, global de cliente, del servidor (cache), de la URL, y de formularios; cada una pide una herramienta distinta.
Los cimientos: el patrón observer, pub/sub, y cómo un cambio propaga a quien lo escucha; la base de todo sistema reactivo.
Signals: getter/setter con tracking automático de dependencias; el modelo, su auge en 2026, y el TC39 Signals proposal.
El modelo push de los observables: streams de eventos en el tiempo, operadores, y RxJS; cuándo un stream y cuándo un signal.
Estado derivado: valores computados a partir de otros (memos, selectores), memoización, y por qué derivar es mejor que duplicar.
Por qué la inmutabilidad domina el estado: comparación por referencia, structural sharing, Immer, y el coste real de copiar.
La dificultad central de la reactividad: glitches, estados intermedios inconsistentes, orden de actualización, y la propagación glitch-free.
El estado del servidor NO es estado de cliente: es una cache. TanStack Query y SWR; fetching, cache, revalidación, y por qué separarlo.
La URL como fuente de verdad: search params, deep linking, estado compartible y navegable; cuándo el estado debe vivir en la URL.
Los formularios son estado complejo: valores, validación, dirty/touched, envío; librerías (React Hook Form, TanStack Form) y el enfoque no controlado.
Optimistic updates: mostrar el resultado esperado antes de la confirmación y revertir si falla; reconciliar el estado local con el del servidor.
Persistir el estado (localStorage, IndexedDB), hidratarlo al arrancar, y el estado offline; los peligros de la hidratación en SSR.
Comparar los primos: Redux, Elm, TCA y MVI comparten el ADN unidireccional; qué los une, qué los diferencia, y qué aprender de cada uno.
El criterio unificado: signals vs store vs máquina vs arquitectura formal; separar estado de servidor, cliente y UI; el árbol de decisión completo.
Local-first: CRDTs (Yjs, Automerge), sincronización sin conflictos, y motores como Electric/Zero; el estado que vive en el cliente y converge.
Guardar los eventos en vez del estado: event sourcing, proyecciones, CQRS, y por qué el log es la fuente de verdad definitiva.
Implementar deshacer/rehacer: pilas de estados, comandos inversos, y el time-travel debugging que habilita la inmutabilidad.
Varios usuarios sobre el mismo estado: OT vs CRDT, presencia, cursores, y resolver conflictos en tiempo real.
El estado que cruza del servidor al cliente: serialización, hidratación, mismatches, y el estado por petición sin filtrar entre usuarios.
TypeScript al servicio del estado: uniones discriminadas, estados imposibles no representables, y validación con Zod en las fronteras.
Testear la lógica de estado aislada de la vista: reducers puros, máquinas, stores, y el testing basado en propiedades y en modelos.
El arte de depurar estado: DevTools, trazar el grafo de dependencias, y los diagnósticos de "no reacciona" o "reacciona de más".
Medir y optimizar: granularidad de las suscripciones, re-renders innecesarios, memoización, y el coste real de cada modelo.
Estado y asincronía: condiciones de carrera lógicas, cancelar peticiones obsoletas, transiciones concurrentes, y la última escritura gana.
Los errores clásicos: estado duplicado, todo en global, estado derivado guardado, y el catálogo de refactors que los curan.
Organizar el estado en una app grande: fronteras por dominio, estado de feature vs compartido, y convenciones que sobreviven al equipo.
Lo que viene: signals estandarizados en el lenguaje, async transparente, local-first por defecto, y la convergencia entre frameworks.
La teoría unificada: todo estado es reactividad + una disciplina de mutación; conectar signals, máquinas y arquitecturas en un solo modelo mental.
Empieza por los fundamentos y sube nivel a nivel hasta el dominio total.
Comenzar el camino →