Every app we write has some kind of state – it could be a shopping list or a gym schedule. The more complex our apps get, the more state they need to manage, hence the need for managing it properly. One of the most popular state management libraries is Redux – a single-tree storage based on Flux architecture.
Talk about CQRS and Event Sourcing and how Redux architecture implements these patterns, explain data flow.
Show reducers, actions and redux store in the data flow and put it into practice by building some.
Use react-redux and explain what’s available there and how to avoid unnecessary re-renders with selectors and memoization.
Explain the middleware concept, how we can hook existing ones into our Redux pipeline and how to create your own.
Show how synchronous Redux can handle asynchronous data flow.
Most of the tests are simple to write as we’re dealing with pure functions. Explain how to test async workflow and connected React components.
Do’s and don’ts of persisting data in Redux – when it’s a good idea to store it and when it’s not, and how to version stored data.