wandres.dev
Fundamentos de Estado cheatsheet
⌘ REFERENCIA · 44 elementos

Cheatsheet de Fundamentos de Estado

Todo el estado en un sitio: primitivos, máquinas, Redux, las arquitecturas unidireccionales y el estado del servidor. Busca por API o por lo que quieres hacer.

⚛️ Primitivos 6

El patrón base: sujeto y observadoresObserver / pub-sub
Valor reactivo con tracking automáticosignal / computed / effect
El TC39 Signals proposalSignal.State · Signal.Computed
Stream de valores en el tiempo (push)Observable (RxJS)
Estado derivado y cacheadoselector / memo
Inmutabilidad con sintaxis mutableImmer · produce()

🔀 Máquinas de estado 7

Estados, eventos, transicionesFSM
Jerarquía, paralelismo, historia (Harel)statechart
XState v5: definir la máquinacreateMachine({ states })
Estado extendido y su actualizacióncontext + assign
Transiciones condicionales / efectosguard / actions
Actores y mensajes (actor model)invoke · spawn · sendTo
Conectar a la UI (React)useMachine / useSelector

🔁 Flux · Redux 7

Flujo unidireccionalaction → reducer → store → view
RTK: reducer + actions con ImmercreateSlice
Lógica async (pending/fulfilled/rejected)createAsyncThunk
Store con buenos defaultsconfigureStore
Estado del servidor en ReduxRTK Query
Selectores memoizadoscreateSelector (reselect)
Colecciones normalizadascreateEntityAdapter

🪶 Ligeros 4

Store como hook, sin boilerplateZustand (~3KB)
Átomos componibles (bottom-up)Jotai (~4KB)
Proxy mutable reactivoValtio
Store agnóstico y diminutonanostores

🔗 Arquitecturas 6

Model · Msg · update · view (puro)Elm (TEA)
Elm: efectos como datosCmd / Sub
State · Action · Reducer · Effect · StoreTCA (Swift)
TCA: DI y testing exhaustivo@Dependency · TestStore
Model-View-Intent (Android)MVI
MVI en Kotlin sobre coroutinesOrbit: container + intent

🌐 Servidor · URL · forms 5

TanStack Query: cache del servidoruseQuery / useMutation
Frescura e invalidaciónstaleTime · invalidateQueries
Actualizaciones optimistas + rollbackuseOptimistic · onMutate
Estado en la URL, tipadoURLSearchParams · nuqs
Formularios + validación por esquemaReact Hook Form · Zod

🛰️ Persistencia · futuro 5

Persistir estado (sync / async)localStorage · IndexedDB
Hidratar el store al arrancarrehydrate
El peligro del estado en SSRhydration mismatch
Convergencia sin conflictosCRDT (Yjs · Automerge)
Motores de sync local-firstElectric · Zero · Jazz

🧭 El criterio 4

La decisión más importanteSeparar servidor / cliente / UI / URL
Escalar cuando duela, no antesuseState → store → máquina
Los dos ejes de todo estadoreactividad + disciplina
El stack pragmático de 2026TanStack Query + Zustand