- State Tree - Whole application state is inside a single JSON object
- Everything that changes in our application including data and ui state is contained in a single json object - called state or state tree
- Dispatch/Action - State tree is redundant. You cannot modify state directly
- To modify state you need to dispatch an action
- Action is a minimal representation of change to do
- An action contains a type (string) and an optional payload
- Reducer - A pure function which takes previous state of the app and returns the next sate of the application.
- For any given input output will always be the same
- It doesn't modify its input (for ex. array)
- It doesn't make any side-effects (ex. network call, db update etc)
https://blog.isquaredsoftware.com/presentations/react-redux-ts-intro-2020-12/#/1