Existe un cierto acuerdo en la comunidad de desarrolladores sobre algunos temas que comúnmente se ven como grandes problemas: nombrar cosas, caché y manejo de estado. Al crear la interfaz de usuario y las experiencias del usuario a través de aplicaciones web, una de las mayores dificultades es cómo lidiar con el estado de la aplicación.
La interfaz de usuario es una función del estado. En otras palabras, ** estado es una estructura de datos que representa una instantánea de la realidad en la interfaz de la aplicación ** o más simplemente, es una representación programática de lo que el usuario ve en un momento determinado. El estado es la expectativa que tiene el usuario de cómo debe funcionar la aplicación, esto es parte de la batalla constante que libramos al agregar estado a las aplicaciones. "¿Lo que ve el usuario es exactamente uno a uno con lo que el estado representa internamente?".