ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React Redux 리액트 리덕스란?
    React 리액트 2023. 9. 21. 14:25
    반응형

    리덕스란 JavaScript 상태관리 라이브러리이다.
    리덕스의 본질은 Node.js 모듈이다.

    리덕스는 쉽게 설명하면 상태 관리의 로직을 컴포넌트 밖에서 처리 하는 것이다.

    리덕스를 사용하면 스토어라는 개체 내부에 상태를 담게 된다.

     

     

     

    액션(Action) : 상태 변화를 일으킬 때 참조하는 객체이다.

    - const mapActionToProps = (dispatch) => {   } 함수 사용
    - Action이라는 단어는 Event와 같다고 생각하면 된다.
    - dispatch 인수에서 Ruduce로 넘길 객체(type)를 정의한다.
    - Action이 실행되고 끝나면 type을 반환하는데 type은 Reduce로 전달된다.

     


    스토어(Store) : 애플리케이션의 상태 값들을 내장하고 있다.

    - 리덕스에서는 단 하나의 스토어를 만든다
    - 리듀스에 의해서만 state의 값이 변경된다.

    - 이 스토어 내부에는 현재의 앱 상태(state)와 리듀서(reducer)가 들어가 있다.

     

    리듀서(Reducer) : 상태를 변화시키는 로직이 있는 함수이다.

    - ex) export function reducer(state = {state : 10, age:100}, action)
    - Reducer 함수는 순수함수여야 한다. 결과 값을 출력 할 때는 파라미터 값에만 의존해야 하며, 언제나 같은 결과를 출력해야 한다.
    - Reducer에서 state를 사용한다면 반드시 state를 초기화 해야 한다.
    - Reducer에서 state의 변화가 일어난다.
    - 값의 갱신은 반드시 reducer에서 해야 한다.

    - Action을 Reducer에 전달하기 위해서는 dispatch() 메소드를 사용해야 한다.

     


    State : 컴포넌트에 최종 출력하기 전 거치는 중간과정

    - 컴포넌트에서 사용하는 데이터

    - mpaStateToProps(state) 함수 사용 
    - 리덕스에서 저장 하고 있는 상태값(=데이터)
    - 딕셔너리 형태로 보관한다 ({[key]: value})
    - Store에 저장되어 있는 변수를 가져와서 최종 가공을 위한 목적으로 사용된다.
    - 예를 들어, num:state.num*100 이라고 갱신을 하더라도 실제 num의 값은 갱신되지 않고 컴포넌트에 출력하는 값을 가공한 것이다.


    디스패치(dispatch) : 액션을 스토어에 전달

    - Dispatch는 store의 내장 함수 중 하나로, action을 발생시킨다.

    - action을 파라미터로 전달하고 reducer를 호출한다.
    - 리액트 컴포넌트에서 리덕스 스토어를 구독하는 작업은 후에 react-redux의 connect 함수가 대신 한다.

     

    구독(Subscribe): 

    - Subscribe는 store의 내장 함수 중 하나로, 특정 함수를 전달해주면 action이 dispatch 되었을 때마다 전달된 함수가 호출

    - 리덕스의 내장 함수를 사용하여 subscribe, unsubscribe 함수를 사용하여 구독 및 구독 취소를 할 수 있다.

    반응형

    댓글

Designed by Tistory.