The Flux architecture developed by Facebook, solves the problem of scattered view state for applications built upon React components. Its not a real framework, more a set of simple conventions and ideas that play well together.

The core idea of Flux is to centralize the front-end logic into stores, the only places where application state is managed. They are what you might call view model in other frameworks, except that they don't have to map directly to the concept of a thing (e.g: Todo).

Stores manage state, and listen for defined events happening in the View layer. This could be anything, from a VideoPlaybackStore that manages the current state of a video player, to a TodosStore that manages a list of todos. The store depends on any number of data sources, reactive or non-reactive, then exposes an API for the components to use. When a matching event is heard, the store updates it's reactive properties by calling the supplied function. Components depend on a store for external state rather than a data source directly, which creates a highly decoupled and testable system, increasing the maintainability of an evolving system.