우리가 리덕스를 공부할때 무조건적으로 보는 부분이 있을것이다.
바로 "리덕스의 3원칙" 이다. 리덕스의 기본개념을 이 세가지 원칙으로 정리를 한것이라 봐도 무방하니
리덕스를 공부하면서 이 3원칙은 반드시 저장해두어야 한다.
3원칙을 공부하기 전에, 일단 리덕스의 간단한 작동원리를 살펴보자면
이런식으로 Action -> Reducer -> Store 를 거쳐 Client (App) 에 도달하게 된다.
각각의 부분들이 어떤 역할을 하는지는 알고있을테니, 이제 이 내용을 기반으로 리덕스의 3원칙에대해
정리해 보겠다.
여기서 말하는 한곳이란, Store를 의미한다. 별도의 컴포넌트마다 동기화가 필요없이 store에서
각각에 연결되어 있는 컴포넌트에게 일괄적으로 처리를 하게된다.
상태는 불변데이터이다. 만약 상태를 교체해야되는 상황이 생긴다면, 그 요청은 Action 에서만 가능하다.
그리고 그 요청으로 Reducer 가 상태를 변경해준다.
Action 에 의해 상태 트리가 어떻게 변화하는지를 지정하기 위해 Reducer 를 작성해야 한다.
Reducer 는 이전 State와 Action을 받아 다음 상태를 반환하는 순수함수이다.
이전 상태를 변경하는 것이 아니라, 새로운 상태 객체를 생성해서 반환해야한다는 사실을 기억해야 한다.