Redux is an open source library that defines itself as a predictable state container for JavaScript apps. The concepts are not exactly new, but the details were developed by Dan Abramov in 2015 who was influenced by Facebook's Flux and the functional programming language, Elm. It quickly gained popularity among the React community as it was used throughout Facebook.
We don't want to redefine what Redux is, so we will quote directly from the Redux repo (https://github.com/reactjs/redux):
The whole state of your app is stored in an object tree inside a single store.
The only way to change the state tree is to emit an action, an object describing what happened.
To specify how the actions transform the state tree, you write pure reducers.
That's it!
The concept is fairly simple and quite brilliant. You...