Introducing Immer: Immutability the easy way – Hacker Noon

  • The producer function receives one argument, the draft, which is a proxy to the current state you passed in.
  • The currentState will be untouched during this process.Because immer uses structural sharing, and our example producer above didn’t modify anything, the next state above is simply the state we started with.Let’s take look at what happens when we start modifying the draft in our producer.
  • It is not too bad in this simple case, but this process has to be repeated for every action, and on every level in which we want modify something.We have to make sure to return the existing state if the reducer doesn’t do anythingWith Immer, we only need to reason…
  • Both the original reducer and the new one behave exactly the same.No strings attachedThe idea to produce the next immutable state by modifying a temporarily draft isn’t new.
  • This will create a new function that will execute the producer when it’s passed in a state.

Immutable, structurally shared data structures are a great paradigm for storing state. Especially when combined with an event-sourcing architecture. However, there is a cost to pay. In a language…
Continue reading “Introducing Immer: Immutability the easy way – Hacker Noon”