thumbthing / react-immer-tutorial

0 stars 0 forks source link

immer 를 써보고 계시군요 #1

Open eomttt opened 1 year ago

eomttt commented 1 year ago

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 하게 데이터를 바꿔야하는것을 간단한 방식으로 제공하는 것이죠

eomttt commented 1 year ago

그렇다면 왜? 리액트 또는 리덕스에서 immutable 하게 데이터를 유지해줘야하면서 바꿔야할까요?