서론 없이 우선 구조를 살펴보자.
리덕스는 도로규정으로 비유하자면 일방통행
길 이다. (Flux 구조)
무조건 한 방향으로 이동하게 되어있다.
또한, 한 방향으로 이동하지 때문에, 불변성
을 유지한다.
타 포스트 글에 자세히 나와있지만, 내가 느끼는 Redux
의 동작순서는 아래와 같다.
Event(ex - click) > dispatch(with, 액션 함수) > reducer() > 리렌더링
dispatch
를 사용해 우리가 미리 작성해둔 함수의 실행을 요청한다.액션 함수
는 return
값으로 type
과 payload
를 반환한다. (중요)reducer
에서 action
파라미터로 받을 수 있다. (이 부분이 이해과정에 납득하기 힘들었다.)reducer
에서 받은 반환값 마다 미리 정의해둔 case
에 맞게 store
의 초기 상태값을 변경한다.store
에 값이 변경되면, 해당 값을 사용하고 있는 컴포넌트 들은 리렌더링 된다.리덕스에 대한 이해가 적어 말이 길어졌다.
지금까지 내가 작성해본 redux
코드를 정리해보려 한다