웹/React.js

[React.js] 간략한 리덕스(Redux) 정리

2021. 4. 20. 01:02
목차
  1. 1. 리덕스(Redux)란?
  2.  
  3. 2. 리덕스 동작 방식
  4.  
  5. 3. 리덕스 용어 정리
  6.  
  7. 4. 리덕스 3가지 원칙

리액트를 쓸 일이 있어서 리덕스 구조부터 코드를 짰는데, 코드만 짜고나니 기본적인 개념이 너무 머리에 정리가 안돼서 리덕스에 대해서 간략하게 정리하고자 남겼다.

 

1. 리덕스(Redux)란?

리덕스는 상태를 전역(global)으로 관리하게 해주는 라이브러리다.

즉, 리덕스는 상태 관리를 컴포넌트 바깥에서 할 수 있게 도와준다.

 

2. 리덕스 동작 방식

1) 스토어 설정

2) 컴포넌트의 스토어 구독하기(subscribe)

3) 스토어에게 상태 변경하라고 알리기(dispatch)

 

 

스토어 내부의 상태값은 action dispatch를 통해 변경된다.

 

3. 리덕스 용어 정리

스토어(store) 상태에 관한 데이터들이 담겨있는 저장소
액션(action) 상태변화를 일으킬 때 참조하는 객체
디스패치(dispatch) 액션을 스토어에 전달하는 행위
리듀서(reducer) 상태를 변화시키는 로직을 정의하는 함수
구독(subscribe) 스토어에 있는 특정 데이터의 변동을 감지

 

4. 리덕스 3가지 원칙

1. 리덕스를 사용하는 어플리케이션엔 하나의 스토어만이 존재해야 한다.

 

2. 상태를 직접 변경할 수 없다.

상태를 변경하기 위해서는 액션이 디스패치(dispatch)되어야 한다.

 

3. 리듀서는 '순수 함수'로 작성되어야 한다.

상태를 변경하기 위해 받아온 액션 객체를 처리하는 함수를 리듀서(Reducer)라고 부른다.

액션이 어떤 변화가 일어나야 할지를 알려주는 객체라면, 리듀서는 그 정보를 받고 애플리케이션의 상태를 어떻게 바꿀지를 정의한다. 

 

이러한 리듀서는 '순수 함수'로 작성되어야 하는데, 다음과 같은 조건을 따른다.

  1. 외부 네트워크나 데이터베이스에 접근하면 안 되고, 순수하지 않은 API 호출은 금지된다(Date 및 Math 등).
  2. 리듀서 함수는 이전 상태와 액션 객체를 파라미터로 받는다.
  3. 리턴 값은 오직 매개변수 값에만 의존되어야 한다.
  4. 이전 상태는 절대로 건드리지 않고, 변화를 준 새로운 상태 객체를 만들어서 반환한다
  5. 같은 인수로 실행된 리듀서 함수는 언제나 같은 결과를 반환해야 한다.

 

 

 


Reference

velopert.com/1225

velopert.com/3528

backback.tistory.com/308?category=801894

저작자표시 비영리 (새창열림)

'웹 > React.js' 카테고리의 다른 글

[React.js] 좋아요 하트 아이콘 구현하기  (0) 2021.05.18
[React.js] API를 연동한 Pagination 구현  (4) 2021.05.16
[React.js] 라우터를 이용한 접근 제한 구현 (Access Control & Authentication)  (5) 2021.04.22
  1. 1. 리덕스(Redux)란?
  2.  
  3. 2. 리덕스 동작 방식
  4.  
  5. 3. 리덕스 용어 정리
  6.  
  7. 4. 리덕스 3가지 원칙
'웹/React.js' 카테고리의 다른 글
  • [React.js] 좋아요 하트 아이콘 구현하기
  • [React.js] API를 연동한 Pagination 구현
  • [React.js] 라우터를 이용한 접근 제한 구현 (Access Control & Authentication)
코택
코택
코택
TaxFree
코택
전체
오늘
어제
  • 분류 전체보기 (369)
    • Spring (29)
      • Spring (18)
      • 스프링 핵심 원리 - 고급편 (11)
    • Spring Batch (4)
    • JPA (4)
    • CS (89)
      • 자료구조 (2)
      • 네트워크 (5)
      • 운영체제 (1)
      • 데이터베이스 (4)
      • SQL (7)
      • 알고리즘 이론 (4)
      • 알고리즘 문제 풀이 (66)
    • 웹 (28)
      • React.js (4)
      • Next.js (1)
      • Node.js (14)
      • FastAPI (4)
      • Django (5)
    • 프로그래밍 언어 (45)
      • Python (5)
      • Java + Kotlin (29)
      • JavaScript + TypeScript (11)
    • 테스트코드 (26)
      • ATDD, 클린 코드 with Spring (4)
      • 이규원의 현실 세상의 TDD: 안정감을 주는 코드.. (20)
    • 인프라 (6)
      • AWS (2)
      • Kubernetes (4)
    • 트러블슈팅 (25)
    • 책 (89)
      • Effective Java (54)
      • Effective Kotlin (14)
      • 도메인 주도 개발 시작하기: DDD 핵심 개념 정.. (11)
      • 웹 프로그래머를 위한 데이터베이스를 지탱하는 기술 (6)
      • 도메인 주도 설계 첫걸음 (4)
    • Git (10)
    • 회고 (5)
    • etc (8)

블로그 메뉴

  • 홈
  • 방명록
  • 관리
  • GitHub
  • LinkedIn

공지사항

  • 스킨 관련

인기 글

태그

  • dp
  • http
  • Shortest Path
  • 브루트포스
  • fastapi
  • 그래프
  • mysql
  • BOJ
  • 그래프 탐색
  • 깊이 우선 탐색
  • Git
  • 파이썬
  • 백준
  • atdd
  • 장고

최근 댓글

최근 글

hELLO · Designed By 정상우.
코택
[React.js] 간략한 리덕스(Redux) 정리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.