In this chapter, we discussed advanced patterns when developing JavaScript, Redux, and React applications. We started by learning about basic concepts, such as pure functions, and then moved on to higher-order functions. Next, we learned how to use these concepts in a Redux/React application through higher-order reducers and higher-order action creators. Then, we focused on how to implement generic undo/redo behavior in a Redux application by creating a higher-order reducer. Finally, we used the redux-undo library to achieve the same undo/redo behavior, as well as more customized behavior.
In the next chapter, we will cover how to directly extend the Redux store using middleware by providing an example of implementing logging in the Redux store.