Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Immutable JavaScript Data Structures with Immer

These notes are intended to be used and studied in tandem with Michel Weststrate's Immutable JavaScript Data Structures with Immer self-paced workshop.

Some question(s) are outlined in the essential questions section of the README for you to think about as you take the workshop. There is no 'definitive' answer to these questions but as you learn, you'll develop a more contextualized answer.

Right below is the intended outcomes of the course, these are the skills and knowledge you will learn that you can take to any application to use.

Essential Questions

How does immutable data help develop applications?


Know how to update deep data structures with Immer

How to apply Immer automatically by using currying

How to use Immer along with Typescript

Detect and distribute changes in data (server communication, redo, etc).

Use Immer in Async Processes

Configure Immer

01. Overview

How does Immer make tracing state over time easy? How does it simplify state manipulation?

What are Immer patches?

Using immutable data to store state has many interesting benefits. Immutable data makes it easy to trace state over time. It can be distributed easily, and by leveraging structural sharing we can leverage optimization techniques such as memoization.

In this course we will build a multi user gift-list, in which we will discover how using immer doesn’t just significantly simplifies our state manipulation code. It also provides us with very useful tools such as patches that can help us to distribute changes, build undo/ redo, etc.


These are community notes that I hope everyone who studies benefits from. If you notice areas that could be improved please feel free to open a PR!

You can’t perform that action at this time.