터미널> npm install immer
터미널> yarn add immer
// 🔹 기본예시
import produce from 'immer';
const nextState = produce(originState, draft => {
    // 바꾸고 싶은 값 바꾸기
    draft.somewhere.deep.inside = 5;
})
// 🔹 사용예시
import produce from 'immer';
const originState = [
    {
        id : 1,
        txt : 'hello'
    },
    {
        id : 2,
        txt : 'bye'
    }
];
const nextState = produce(originState, draft => {
    // id로 항목 찾아서 수정하기
    const text = draft.find(t => t.id == 2);
    text.txt = 'hello world!!';
    // 새로운 데이터 추가
    draft.push({
        id : 3,
        txt : 'good night'
    })
    // id로 항목 찾아서 제거
    draft.splice(draft.findIndex(t = t.id == 1));
})
const update = produce(draft => {
    draft.value = 2;
})
const originState = {
    id : 1,
    value : 123,
}
...
const nextState = update(originState)