728x90
리덕스 프로젝트를 사용할 때 지켜야 할 규칙
1. 단일 스토어
- 하나의 프로젝트 안에는 하나의 스토어가 들어 있음.
2. 읽기 전용 상태
- 리덕스 상태는 읽기 전용이다.
- 리액트에서 setState를 사용하여 state를 업데이트 할때 업데이트 하는 과정에서 불변성으 지켜주기 위해 spread, immer 라이브러리를 사용한것과 마찬가지!
리덕스에서 불변성을 유지해야 하는 이유?
- 내부적으로 데이터가 변경되는 것을 감지하기 위해 얕은 비교 검사를 하기 때문.(겉핡기식)
3. 리듀서는 순수한 함수
- 변화를 일으키는 리듀서 함수는 순수한 함수여야한다.
- 리듀서 함수는 이전 상태와 액션 객체를 파라미터로 받는다
- 파라미터 외의 값에는 의존x
- 이전 상태는 절대로 건드리지 않고, 변화를 준 새로운 상태 객체를 만들어서 반환
- 똑같은 파라미터로 호출된 리듀서 함수는 언제나 똑같은 결과 값을 반환해야함
728x90