코드코코

[리액트] immer로 불변성 유지 작업 본문

기록/정리

[리액트] immer로 불변성 유지 작업

코드코코 2021. 11. 2. 21:05

immer 라이브러리

- 불변성에 신경 쓰지 않는 것처럼 코드를 작성하되 불변성 관리는 제대로 해주는 것

- 단순히 깊은 곳에 위치하는 값을 바꾸는 것 외에 배열을 처리할 때에도 쉽고 편함.

- 객테 안에 있는 값을 직접 수정하거나, 배열에 직접적인 변화를 일으키는 push, splice 등의 함수를 사용해도 무방.

import produce from 'immer';

//produce(수정하고 싶은 상태, 상태를 어떻게 업데이트 할지 정의 하는 함수)
const nextState = produce(originalState, draft => {
  //바꾸고 싶은 값 바꾸기
  //produce 함수가 불변성을 유지를 대신해 주면서 새로운 상태를 생성
  draft.somewhere.deep.inside = 5;
})