Managing state in a React front-end app ?
During the development of our app, we often iterated on the correct way to manage state. We were convinced that event-sourcing with Flux and Redux was the right way to go. However, even with this design pattern in mind, we were often asking ourselves questions such as :
- where should I put this specific piece of application state ?
- do I need that component to be aware of global application state ?
- how can I prevent my whole components tree from updating whenever the state changes ?
To address this kind of issue, we have split this chapter into two parts :
- an insight on the general concepts of application state management,
- a few guidelines we applied to work with React and Redux on our app.
We also wanted to explore a few ways of improving a React app's performance, which we did with an exploratory work on immutability.