Redux is a Java Script library that is used to manage the application state of both the component-based React.js framework and Angular. It is a kind of development of flux architecture - an application architecture pattern whose main feature is unidirectional flow of information. It is based on the assumption that each state of a component is the result of a previous state that was modified by a specific action, an assumption that makes it easy to test, save and resume that state.
Redux - debugging time travel
In any project based on React.js or Angular, along with its complexity comes the problem of passing attributes from parent components (parents) to subordinate components (children). Redux allows you to eliminate this problem, because with its help you can separate the layer of administration of the application state from the code of the components, which should be responsible only for the presentation of data. This library has many advantages, but using it requires excellent knowledge of Java Script and one of its frameworks. First of all, it features a lot of code predictability, so applications behave consistently and work correctly in different environments (server, browser). It also simplifies debugging of the code and tracking at what point the state of a component changed, i.e. it allows so-called time travel debugging. At the same time, Redux offers a kind of centralization of state and all application logic, thanks to the ability to undo, redo or fix state. It is extremely flexible, so it works properly in every layer of the interface, and it has a sizable backend of add-ons to make things easier.