[Redux] 개념정리

garaming·2022년 4월 13일
0

Redux란?

앱 전체 상태를 관리하기 위한 라이브러리

Redux 핵심원칙

  • Single Source Of Truth - Store는 단 하나이며, 모든 앱의 상태는 이곳에 보관된다.
  • Immutability - 상태는 오로지 읽을 수만 있다. 상태가 만약 객체라고 한다면 재생성할때, 무조건 새로운 객체를 생성하는 방식으로 변경해야 한다.
  • Pure Function - 상태의 변경은 어떠한 사이드 이펙트도 만들지 않아야 한다.

Action

상태의 변경을 나타내는 개념

주로 type, payload를 포함하는 JS객체의 형태. 액션 외의 다른 일은 일어나지 않으며, 큰 상태를 나타내기 보단 작은 상태를 잘게 쪼개(atomic) 최소한의 의미를 가지도록 만드는 것이 좋다.

Action Creater

Action을 생성하는 함수

직접 Action을 생성하는 것보다 Action Creater를 활용하면 재사용성이 좋고 하나의 레이어를 추가할 수 있다.

Store

앱 전체의 상태를 보관하는 곳

Action에 따라 reducer에서는 새로운 상태를 만들어내며, store는 그 상태를 저장한다. store의 상태는 불변하며, 매 action이 발생할 때마다(=reducer에서 새로운 상태를 만들 때마다) 새로운 객체가 만들어진다.

Reducer

Action을 받아 새로운 State를 만든다.

(state, action) => state 의 인터페이스를 따른다. 상태 변경 시 사이드 이펙트가 없어야 한다. action을 dispatch 하기 전에 즉, action을 reducer에 보내기 전에 이루어져야 하고, 그 결과를 가지고 action에 넣어줘야 한다.

Dispatch

Action을 redux로 보내는 함수

dispatch 후에 action은 middleware를 거쳐 reducer에 도달한다.

Selector

특정 state 조각을 store로부터 가져오는 함수

store의 state는 raw data를 저장하고, 계산된 값 등을 selector로 가져온다.

profile
Connecting the dots

0개의 댓글