리덕스를 프로젝트에서 사용할 때 지켜야 하는 세 가지 규칙에 대해 알아보자!
리덕스 상태는 읽기 전용
기존 리액트에서 setState로 state 업데이트 시, 불변성을 지키기 위해 spread 연산자 / immer와 같은 불변성 관리 라이브러리를 사용함.
리덕스도 마찬가지!!!
상태 업데이트 시, 기존 객체는 건드리지 않고 새로운 객체를 생성함.
(+) ❓🤔 리덕스에서 불변성을 유지해야 하는 이유는?
👉 내부적으로 데이터가 변경되는 것을 감지하기 위해 얕은 비교 검사를 하기 때문!
객체 변화를 감지할 때, 객체 깊은 안쪽까지 비교하는 게 아니라 겉핥기 식으로 비교해 좋은 성능을 유지할 수 있는 것!
변화를 일으키는 리듀서 함수는 순수한 함수여야 함