리액트 - 리덕스(Redux) 개념 정리

HJ·2022년 1월 28일

React

목록 보기
6/14

이번 리액트 숙련 과정 과제 작업에 앞서 '리덕스' 라는 것에 대한 개념 이해가 필요하여 강의를 수강 중인데, 그냥 보는 것 보다 typing하면서 정리하는게 좋을 것 같아 포스팅 해보려고 한다.


리덕스란?

  • 리덕스는 데이터를 한 군데 몰아넣고, 여기저기에서 꺼내볼 수 있게 해주는 상태관리 라이브러리.
  • 전역 상태관리를 편히 할 수 있게 해주는 것이다.

상태관리 흐름

  • 스토어: 데이터 저장소
  • 리듀서: 리덕스에 저장된 상태(=데이터)를 변경(수정)하는 곳
  • 액션: 가지고 있는 데이터를 변경할 때 발생하는 것 (데이터를 바꿔주는 것을 '액션을 디스패치한다' 라고 표현한다.)
  • 디스패치: 액션을 발생시키는 역할 (요청하는 것)
  • 구독: 각 컴포넌트가 스토어로부터 데이터를 받아오는 것
  • 작동 과정
    • (1) 리덕스 Store를 Component에 연결한다.
    • (2) Component에서 상태 변화가 필요할 때 Action을 부른다.
    • (3) Reducer를 통해서 새로운 상태 값을 만들고,
    • (4) 새 상태값을 Store에 저장한다.
    • (5) Component는 새로운 상태값을 받아온다. (props를 통해 받아오므로 재 랜더링 된다.)

리덕스의 3가지 특징

  • store는 1개만 쓴다(단일 스토어)
  • store의 state(데이터)는 오직 action으로만 변경 가능.
    • state는 setState()나, useState() 훅을 써서만 변경 가능했던 것 처럼 데이터가 마구잡이로 변하지 않게 하기 위함이다.
  • 어떤 요청이 와도 리듀서는 같은 동작을 해야한다.
    • 같은 값을 넣으면 항상 같은 값이 나와야 함(예: parameter로 1을 넘기면 3을 return해주는 함수를 만들었을 때: 1을 넣으면 항상 3이 나와야 함.)
    • 파라미터로 받아온 값 외에는 아무것도 참조하지 않아야 함.
    • 이전 상태는 수정하지 않는다(새로운 state를 반환하는 것만 가능)

0개의 댓글