Web Front-End/React
React-Redux, Redux, Redux-logger, Redux-thunk, Redux-saga
여의도스토리
2020. 6. 24. 17:15
정리
- 리액트에서 하나의 앱에는 하나의 Store가 존재한다.(Vuex와 동일)
- Store의 state는 읽기전용
- 기존 상태는 건들이지 않고 새로운 상태를 생성하여 업데이트 해줘야한다.
- 리듀서는 이전 상태와 액션 객체를 파라미터로 받고 언제나 새로운 상태의 객체를 만들어서 반환해야한다.
- 똑같은 파라미터로 호출된 리듀서는 언제나 똑같은 결과값을 반환해야한다.
Redux 주요 기능
- createStore: 리액트 프로젝트에서 스토어를 생성시켜준다.
- combineReducer: 모듈화된 리듀서들을 하나의 리듀서로 통합시켜준다.
- applyMiddleware: 미들웨어를 사용할 수 있게 해준다.
React-redux 주요 기능
- Provider: 리액트 앱의 컴포넌트에서 리덕스 스토어에 Hook을 통해 접근가능
- useSelector: 사용중인 store의 state에 접근할 수 있음
- useDispatch: store에 있는 dispatch를 호출할 수 있는 함수가 리턴됨. 이 함수를 통해서 액션을 발생시킴(vuex의 mutatation 과 비슷..)
Redux-logger 주요 기능
- 미들웨에에서 일어나는 각종 상태 정보들을 로깅할 수 있다.
Redux-thunk 주요 기능
- 리덕스에서 비동기 작업을 처리할 때 주로 사용되는 미들웨어이다.
- 액션 객체가 아닌 함수를 디스패치 할 수 있다.
- 함수를 dispatch할 때에는 해당 함수에서 dispatch, getState를 파라미터로 받아와줘야한다.
- dispatch할 때 함수를 thunk 라고 부른다.
Redux-saga 주요 기능
- redux-thunk 다음으로 가장 많이 사용되는 라이브러리
- 함수를 디스패치할 수 있게해주는게 redux-thunk였다면,
- redux-saga는 특정 액션이 발생하면 이에 따라 특정 작업을 하는 방식
- generator 문법을 기반으로 돌아간다.