immer 는 보통 javascript 의 변수가 immutable 하도록 하기 위해 생긴 라이브러리이고
리덕스와 함께 많이 사용됩니다.
기본적으로 리덕스는 immutable 하게 state 를 관리해야하는데요
const reducer = (state) => {
// 요렇게 하면 arrayData 가 immutable 하지 않게 되어서 문제가 생길 수도 있게 되죠
state.arrayData.push(1)
return state;
// 그래서 원래 다음과 같이 써야하는데요.
// 근데 이렇게 쓰면 너무 복잡해져서 immer 를 사용해서 간략하게 만든거랍니다 ㅎㅎ
return {
...state,
arrayData: [...state.arrayData, 1]
}
// immer
return immer(data => data.arrayData.push(1))
}
즉, immer 는 immutable 하게 데이터를 바꿔야하는것을 간단한 방식으로 제공하는 것이죠
immer 는 보통 javascript 의 변수가 immutable 하도록 하기 위해 생긴 라이브러리이고 리덕스와 함께 많이 사용됩니다.
기본적으로 리덕스는 immutable 하게 state 를 관리해야하는데요
즉, immer 는 immutable 하게 데이터를 바꿔야하는것을 간단한 방식으로 제공하는 것이죠