Building an Undo and Redo functionality into an app has traditionally required conscious effort from the developer. It is not an easy problem with classical MVC frameworks because you need to keep track of every past state by cloning all relevant models. In addition, you need to be mindful of the undo stack because the user-initiated changes should be undoable. This means that implementing Undo an
![Implementing Undo History | Redux](https://cdn-ak-scissors.b.st-hatena.com/image/square/99db7420e259bb57969471211030fc7736d09dd3/height=288;version=1;width=512/https%3A%2F%2Fredux.js.org%2Fimg%2Fredux-logo-landscape.png)