young
is this it
young
전체 방문자
오늘
어제
  • 분류 전체보기 (143)
    • 웹_프론트엔드 (1)
      • 로드맵 챌린지 (73)
      • Svelte (2)
      • React (6)
      • JavaScript (8)
      • TypeScript (2)
      • HTML+CSS (5)
    • 웹_백엔드 (0)
      • Django (0)
    • 빅데이터 (33)
      • R (30)
      • Python (2)
    • 기타 (11)
      • git (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 보안취약점
  • bem
  • 암호화
  • css네이밍
  • 버전관리
  • form
  • ggplot
  • owasp
  • ssl
  • 공개키
  • 인증
  • vcs
  • css후처리기
  • rstudio지도정보
  • 구글맵api
  • Regex
  • ggmap()
  • 웹보안
  • 대칭키
  • 태스크러너

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
young

is this it

상태 관리 라이브러리 - Redux 리덕스란?
웹_프론트엔드/로드맵 챌린지

상태 관리 라이브러리 - Redux 리덕스란?

2022. 2. 9. 08:56
반응형

Redux란?

Redux (이하 리덕스)는 리액트 생태계에서 가장 사용률이 높은 상태 관리 라이브러리다. 하지만 리액트에서만 쓰는 라이브러리는 아니다.

 

 

Redux의 기본 개념

1. Single Source of Truth

동일한 데이터는 항상 같은 곳(스토어)에서 가지고 온다. 따라서 스토어는 프로젝트 당 한 개를 사용한다.

 

2. State is read-only

상태(state)는 setState 메소드를 통해서만 상태 변경이 가능하다.

리덕스에서는 action이라는 객체를 통해서만 상태 변경이 가능하다.

 

3. Changes are made with pure functions

변경은 순수 함수로만 가능하다.

 

 

Redux 기본 용어 3가지: 스토어, 액션, 리듀서

1. Store (스토어)

상태가 관리되는 오직 하나의 공간이다. 컴포넌트에서 상태 정보가 필요할 때 이 스토어에 접근한다.

 

2. Action (액션)

앱에서 운반할 데이터로, 자바스크립트 객체 형식으로 되어있다.

 

3. Reducer (리듀서)

액션 개체를 스토어에 전달하며, 이 과정은 dispatch() 메소드를 통해 이루어진다.

 

 

Redux의 장점

  • 순수 함수를 사용하여 상태를 예측 가능하게 한다.
  • props를 통한 복잡한 상태 관리에 비해 유지보수가 쉽다.
  • 디버깅에 유리하다.
  • 순수 함수를 사용하여 테스트가 용이하다.

 

Redux 사용법

Redux 설치

npm install redux
npm install react-redux  # 리액트에서 사용시 함께 설치

 

store 객체의 메소드들

store.getState()

현재 스토어에 있는 상태 출력

 

store.dispatch(액션)

스토어에 등록한 리듀서에 액션 객체를 전달

 

store.subscribe(이벤트)

스토어에 작업이 전달될 때마다 호출

 

반응형

'웹_프론트엔드 > 로드맵 챌린지' 카테고리의 다른 글

프레임워크 - AngularJS와 Angular 2  (0) 2022.02.11
상태 관리 라이브러리 - MobX란?  (0) 2022.02.10
프레임워크 - React.js 리액트란?  (0) 2022.02.08
빌드 도구 - Linter, ESLint  (0) 2022.02.07
빌드 도구 - Code Formatter, Prettier  (0) 2022.02.04
    '웹_프론트엔드/로드맵 챌린지' 카테고리의 다른 글
    • 프레임워크 - AngularJS와 Angular 2
    • 상태 관리 라이브러리 - MobX란?
    • 프레임워크 - React.js 리액트란?
    • 빌드 도구 - Linter, ESLint
    young
    young

    티스토리툴바