[React] about redux

·2021년 4월 5일
1

redux

  • 상태 관리 라이브러리
  • 컴포넌트끼리 상태를 공유해야 할 때 여러 컴포넌트를 거치지 않고 상태값을 전달 or 업데이트 가능

액션

  • 상태에 변화가 필요하면 액션이 발생함
  • 객체로 표현되며 type 필드를 가지고 있어야 함

액션 생성 함수

  • 액션 객체를 만들어 주는 함수

리듀서

  • 변화를 일으키는 함수
  • 액션을 만들어서 발생시키면 리듀서가 현재 상태와 전달받은 액션 객체를 파라미터로 받아와 새로운 상태를 만들어 반환
  • 루트 리듀서 : 스토어를 만들 때는 리듀서를 하나만 사용해야 하므로 기존에 만들었던 리듀서를 하나로 합쳐줌
    - combineReducers 유틸 함수 사용

스토어

  • 상태가 관리되는 하나의 공간
  • 프로젝트에 리덕스를 적용하기 위해 스토어를 만듬
  • createStore 사용
const store = createStore(rootReducer);

프레젠테이셔널 컴포넌트

  • props를 받아와 화면에 UI를 보여주기만 하는 컴포넌트

컨테이너 컴포넌트

  • 리덕스와 연동되어 있는 컴포넌트
  • 리덕스로부터 상태를 받아오기도 하고, 액션을 디스패치하기도 함

Flux Pattern

  • 디스패처, 스토어, 뷰로 구성
  • 단방향 데이터 흐름

리덕스 3가지 원칙

  1. Single source of truth
  2. State is read-only
  3. changes are made with pure functions

Redux hooks

useSelector

  • 리덕스 스토어의 상태를 조회하는 Hook
const 결과 = useSelector(상태 선택 함수);

useDispatch

  • 리덕스 스토어의 dispatch를 함수에서 사용할 수 있게 해주는 Hook
const dispatch = useDispatch();
dispatch({ type: 'SAMPLE_ACTION' });

참고 https://react.vlpt.us/redux/01-keywords.html

profile
my life is free

1개의 댓글

comment-user-thumbnail
2021년 4월 5일

와 정말 좋네요!

답글 달기

관련 채용 정보