Immutable data structures can be deeply compared in no time. This allows us to
efficiently determine if our components need to rerender since we know if the
props changed or not!
The basic idea behind Immer is that you will apply all your changes to a temporary draftState, which is a proxy of the currentState. Once all your mutations are completed, Immer will produce the nextState based on the mutations to the draft state. (See the official docs for more details.)
The Immer package exposes the
produce function which we use in the following way inside our reducers:
reselect to efficiently cache our computed application
To learn more, check out