250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 실행컨텍스트
- JS module system
- next js
- FP 특징
- 코어자바스크립트
- v8 원리
- 리액트 메모
- 항해99 부트캠프
- 알고리즘
- 자바스크립트 엔진 v8
- 리액트 메모이제이션
- 함수형 프로그래밍 특징
- Js module
- 리덕스
- 항해99
- 렌더링 최적화
- js배열 알고리즘
- 타입스크립트
- 리액트 렌더링 최적화
- gql restapi 차이
- 테스트 코드 툴 비교
- 웹 크롤링
- 항해99 사전스터디
- this
- jwt
- 웹팩 기본개념
- chromatic error
- 항해99 미니프로젝트
- toggle-btn
- 리액트
Archives
- Today
- Total
Jaeilit
TIL(10)리덕스 미들웨어, mapStateToProps 본문
728x90
1. 미들웨어(logger, thunk)
2. mapStateToProps, mapStateToDispatch
1. 미들웨어(logger, thunk)
미들웨어란?
액션을 디스패치 했을 때 호출된 액션을 처리하려는 리듀서와 디스패치 사이의 어떤 작업을 말함
보통은 리덕스에서 미들웨어를 사용하는 주된 사용 용도는 비동기 작업을 처리 할 때로
예를 들어서 리액트 앱에서 우리가 백엔드 API 를 연동해야 된다면, 리덕스 미들웨어를 사용하여 처리한다.
1-2. logger 와 thunk
import { applyMiddleware, combineReducers, createStore } from "redux"
import { subscribersReducer } from "./subscribers/reducer"
import { addViewReducer } from "./views/reducer"
import { AlubmReducer } from "./album/reducer"
import { composeWithDevTools } from "redux-devtools-extension"
import { logger } from "redux-logger"
import thunk from "redux-thunk"
// combineReducers 으로 여러개의 리듀서를 묶어준다.
const rootReducer = combineReducers({
view: addViewReducer,
subscriber: subscribersReducer,
album: AlubmReducer,
})
//미들웨어 종류 state를 변화를 console 에 기록해주는 logger
const middleware = [logger, thunk]
// 스프레드 연산자를 통한 미들웨어 전부 부르기
const store = createStore(
rootReducer,
composeWithDevTools(applyMiddleware(...middleware))
)
export default store
logger 미들웨어의 기능
1-2 redux-thunk란 ?
thunk 미들웨어는 객체가 아니라 함수를 반환하는 액션 생성자를 만들 수 있게 해줍니다.
특정 액션을 몇 초 후에 실행하거나, 현재 상태에 따라 액션이 실행되지 않게 할 수 있습니다.
비동기 작업을 사용 할때 가장 기본적인 방법입니다.
dispatch 와 getState() 를 가지고 있습니다.
dispatch의 생성 액션 를 호출 하고 있다.
mapStateToProps, mapStateToDispatch
mapStateToProps
state 의 값을 props 로 쓸 수 있게 해줌,
728x90
'TIL' 카테고리의 다른 글
TIL Cookie 사용해보기 (0) | 2021.10.01 |
---|---|
TIL <defaultProps> (0) | 2021.10.01 |
TIL(9)리덕스 순서 (0) | 2021.09.28 |
TIL(8)Friebase (0) | 2021.09.25 |
TIL(7)REDUX_1편 (0) | 2021.09.24 |