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 })
})