[Redux] Redux 기본

ds-k.dev·2021년 6월 13일
0

Redux

목록 보기
1/2

20210405 기록

Redux

→ 자바스크립트 앱에서 예측가능한 상태를 관리

  • 각 컴포넌트간에 데이터를 주고받을 때, 부모 컴포넌트를 통해서 주고 받았었다.
    → 자식이 많아지면 상태관리가 엄청나게 복잡해진다.
  • 이런 복잡성을 관리하기 위해 Redux를 사용할 수 있다.

Redux의 세 가지 원칙

  1. Single source of truth
    • 동일한 데이터는 항상 같은 곳에서 데이터를 가지고 온다.
    • 데이터를 저장하는 store라는 하나뿐인 공간이 있다.
  2. State is read-only
    • React에서도 setState라는 메소드를 활용해야만 변화가 가능
    • Redux에서는 Action이라는 객체를 통해 변경 가능
  3. Changes are made with pure functions
    • 변경은 순수함수로만 가능하다. → Reducer와 관련된 개념

Store

  • 상태가 관리되는 오직 하나의 공간
  • 컴포넌트들과 별개의 공간에 앱에서 필요한 state를 두고,
  • 컴포넌트에서 state 정보가 필요할 때 Store에 접근

Action

  • 객체 안에 타입을 비롯한 다양한 데이터들이 담긴다.
  • Store에 앱의 데이터를 운반해주는 형태
{
	type: "ORDER",  // type은 필수
	drink: {
		menu: "Americano",
		size: "Grande",
		iced: false
	}
}

Reducer

  • Action을 통해 앱의 데이터를 Store에 옮길 때, Reducer를 거쳐서 가야 한다.
  • Action 객체는 Dispatch 메소드에게 전달되고, Dispatch는 Reducer를 호출해서 새로운 state 생성
  • 데이터가 한 방향으로 흘러야 하기 때문에

Redux의 장점

  1. 상태를 예측 가능하게 만들어 준다.
  2. 유지보수에 용이하다.
  3. 디버깅에 유리하다.(action과 state log 기록 시)
  4. 테스트를 붙이기 쉽다.

0개의 댓글

관련 채용 정보