Being a predictable state container, Redux helps the developer write applications with consistent behavior, which can run on the server, client, or mobile and which are easy to test. To that purpose, it provides live code editing and a time-traveling debugger.
Redux took the ideas of Flux and evolved them further, while avoiding the complexity by looking over Elm's shoulder. Nevertheless, even developers who have used neither of those can dive in and start using Redux in mere minutes.
There are three principles to Redux.
Single source of truth
The entire application state must be stored in a single store. Redux stores it in an object tree, which, together with the single store, makes it very easy to serialize, debug, and inspect the store, which greatly adds development. It also makes it trivial to persist the app's state in development, as well as implement undo/redo functions.
State is read-only
There is only one way to change state, which goes through a centralized system. This ensures a strict order of changes and eliminates the danger of race conditions.
Changes are made with pure functions
Taking cues from the functional Elm, state reducers are exclusively pure functions which take a previous state and return the next state. While the state is held in an object, mutating the object itself is not allowed, and new state objects are returned instead.
Redux has become a "household name" for web application developers and for a good reason. It makes functionalities that once took hours upon hours of development trivial. It can make any application better, simply by virtue of enforcing its three principles, and thus it is a library you should really consider adding to your application's code. And who better to help you with that than our Redux specialists? Contact us, and we will help you get Redux integrated with your existing application, or design a new application with you, which will benefit from all the goodies Redux has to offer.