리덕스 사용 시 따라야할 세 가지 원칙
- 전체 상태값을 하나의 store 객체에 저장함
- 상태값은 불변 객체
상태 값은 오직 액션 객체에 의해서만 변경되어야함
리덕스의 상태값을 수정하는 유일한 방법은 액션 객체와 dispatch 메서드를 호출하는 것,
다른 방법으로 상태값을 수정하면 안됨
- 상태값은 순수 함수에 의해서만 변경되어야 한다
reducer : 리덕스에서 상태값을 변경하는 함수이다.
리듀서는 이전 상태값과 액션 객체를 입력받아 새로운 상태값을 만드는 순수 함수이다.
순수함수
- side effect(전역 변수의 값을 수정하거나 API요청을 보내는 등 함수 외부의 상태를 변경시키는 것을 발생시키지 않아야함)
- 같은 인수에 대해 항상 같은 값을 반환해야 함
- 랜덤 함수나 시간 함수를 이용하면 순수 함수가 아님
- 같은 인수를 입력해도 호출하는 시점에 따라 다른 값을 반환하기 때문이다.