1. immer.js란


react에서 불변성을 유지하는 코드를 작성하기 쉽게 해주는 라이브러리이다.

ex)

const todos = [
  {
    title : '공부',
    done : true
   },
  {
    title : '게임',
    done : false
   }
]

todos[1].done = true;
todos.push({title : '운동', done : false})

// 원본을 수정하고 싶지 않다면 (불변함을 유지하기 위해서)
const copyTodos = [...todos]
copyTodos[1] = {...copyTodos[1]}
copyTodos[1].done = true
copyTodos.push({title : '운동', done : false})

// 좀 더 간단하게 하고 싶다면 immer js를 이용
import produce from 'immer';
const copyTodos = produce(todos,draft => {
  draft[1].done = true
  draft.push({title : '운동' , done : false })
})