Redux

yeji kang·2020년 9월 27일
0
post-thumbnail

1. action

  • 상태에 어떠한 변화가 필요하면 '액션'이 발생합니다.
  • 액션은 type 필드를 가지고 있는 객체입니다.

2. action creator (액션 생성 함수)

  • 액션 객체를 만들어 주는 함수
  • 어떤 변화를 일으켜야 할 때마다 액션 객체를 만들어야합니다. 매번 객체를 만들다 보면 실수 할 수 있으니 함수로 관리합니다.

3. reducer ( 리듀서 )

  • 변화를 일으키는 함수입니다.
  • action에 따라 상태값을 어떻게 변화할 것인지 명시하는 곳입니다.
  • 현재 상태와 전달 받은 액션 객체를 파라미터로 받아오고 새로운 상태를 반환합니다.

(previousState, action ) ⇒ newState

4. store ( 스토어 )

  • 프로젝트에 리덕스를 적용하기 위해 스토어를 만듭니다.
  • 한 개의 프로젝트는 단 하나의 스토어만 가질 수 있습니다.
  • 스토어 안에는 현재 애플리케이션 상태와 리듀서가 들어 있습니다.

5. dispatch ( 디스패치 )

" 액션을 발생시키는 것"

  • 스토어의 내장 함수 중 하나입니다.
  • 액션 객체를 파라미터로 넣어서 호출합니다.
  • 이 함수가 호출되면 스토어는 리듀서 함수를 실행시켜서 새로운 상태를 만들어 줍니다.
dispatch(action)

6. subscribe ( 구독 )

  • 스토어의 내장 함수 중 하나입니다.
  • 파라미터로 리스너 함수를 넣어서 호출하면 이 리스너 함수가 액션이 디스패치되어 상태가 업데이트될 때마다 호출


3 가지 원칙

  1. The state of your whole application is stored in an object tree within a single store.
    • 전체의 어플리케이션 상태는 하나의 저장소 안에 하나의 객체 트리 구조로 저장됩니다.

2. The only way to change the state is to emit an action, an object describing what happend.

  • 상탯값은 읽기 전용의 불변 객체로 관리한다
    - 상태를 변경하는 방법은 오직 'action'을 개시하는 것뿐이다.
    - 상태값을 update 하기위해서는 action으로 리덕스에게 알려야 한다.
  1. To specify how the state tree is transformed by actions, you write pure reducers.
    • 변화를 일으키는 리듀서 함수는 순수한 함수여야합니다.
    • 순수한 함수 조건
      1. 리듀서 함수는 이전 상태와 액션 객체를 파라미터로 받습니다.
      2. 파라미터 외의 값에는 의존하면 안됩니다.
      3. 이전 상태는 절대로 건드리지 않고, 변화를 준 새로운 상태 객체를 만들어서 반환합니다.
      4. 똑같은 파라미터로 호출된 리듀서 함수는 언제나 똑같은 결과 값을 반환해야 합니다.

출처 : wecode , 리액트를 다루는 기술 , youtube: Codevolution

0개의 댓글