[Redux] - 리덕스의 개념

Donggu(oo)·2022년 12월 28일

Redux

목록 보기
1/6
post-thumbnail

1. Redux란?


  • Redux는 중앙 집중식 상태 관리 라이브러리로, 상태를 하나의 전역 저장소인 Store에 저장하고, 이를 컴포넌트 간에 공유하여 사용한다. 컴포넌트에서 상태를 변경하기 위해 Action을 dispatch하여 Reducer에서 상태를 업데이트한다.

  • Redux는 불변성을 지향하고, 상태가 변경되면 새로운 상태를 반환한다. 이로 인해 불필요한 리렌더링을 방지하여 성능 향상에 도움이 된다.

2. Redux의 상태관리 순서


  • Redux에서는 ActionDispatchReducerStore 순서로 데이터가 단방향으로 흐른다.
  1. 상태가 변경되어야 하는 이벤트가 발생하면, 변경될 상태에 대한 정보가 담긴 Action 객체가 생성된다.
  2. 이 Action 객체는 Dispatch 함수의 인자로 전달된다.
  3. Dispatch 함수는 Action 객체를 Reducer 함수로 전달해준다.
  4. Reducer 함수는 Action 객체의 값을 확인하고, 그 값에 따라 전역 상태 저장소 Store의 상태를 변경한다.
  5. 상태가 변경되면, React는 화면을 다시 렌더링 한다.

3. Redux의 세 가지 원칙


1) Single source of truth

  • 동일한 데이터는 항상 같은 곳에서 가지고 와야 한다. 즉, Redux에는 데이터를 저장하는 Store라는 단 하나의 공간이 있음과 연결이 되는 원칙이다.

2) State is read-only

  • 상태는 읽기 전용이라는 뜻으로, React에서 상태 갱신 함수로만 상태를 변경할 수 있었던 것처럼, Redux의 상태도 직접 변경할 수 없음을 의미한다. 즉, Action 객체가 있어야지만 상태를 변경할 수 있음과 연결되는 원칙이다.

3) Changes are made with pure functions

  • 변경은 순수 함수로만 가능하다는 뜻으로, 상태가 엉뚱한 값으로 변경되는 일이 없도록 순수 함수로만 작성되어야 하는 Reducer와 연결되는 원칙이다.
profile
FE Developer

0개의 댓글