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
- 타입스크립트
- kotlin
- react
- nodejs
- 프론트엔드
- Python
- 최적화
- javascript
- stdin vs input
- CSS
- TS
- 파이어베이스
- 알고리즘
- NPM
- 자바스크립트
- next Link
- 코딩테스트
- 스택
- typescript
- k for k
- 안드로이드
- 리액트
- C++
- 파이썬
- JS
- 백준 스택 시간초과 python
- Android
- firebase
- HTML
- 백준 스택
Archives
- Today
- Total
sooleeandtomas
saga flow 본문
redux-saga 생성
1. action 타입 선언
const GET_BLUR = "GET_BLUR";
2. action 함수 생성 (일반 함수일 경우)
const getBlur = createAction(GET_BLUR)();
3. action 함수 생성 (비동기 함수일 경우) SUCCESS, FAILURE를 나눠줍니다.
const getBlurAsync = createAsyncAction(
GET_BLUR,
GET_BLUR_SUCCESS,
GET_BLUR_FAILURE
)();
4. reducer 함수 생성
const blurReducer = createReducer(initialState, action){
[GET_BLUR] : (state) => ({
...state,
...
}),
[GET_BLUR_SUCCESS] : (state, action) => ({
...state,
...
})
// 비동기 함수 성공의 경우
[GET_BLUR_FAILURE] : (state, action) => ({
...state,
...
})
// 비동기 함수 실패의 경우
}
5. saga 함수 생성 : ( 비동기 처리 )
function* getBlurSaga(action){
...
try{
yield.call() // api 호출
yield.put(getBlurAsync.success) // 성공 시 dispatch reducer
} catch(e){
yield.put(getBlurAsync.failure) // 실패 시 dispatch reducer
}
}
6. saga 사용 함수 생성
function* userSaga(){
yield takeEvery(GET_BLUR, getBlurSaga); // getBlurAsync에 등록되어있는 { GET_BLUR , GET_BLUR_SUCCESS, GET_BLUR_FAILURE } 와 연결?
}
7. rootSaga로 sagas 합침 -> redux config 에서 미들웨어 사용 설정
function* saga(){
yield all([..., blurSaga(), ...])
}
redux-saga 사용
dispatch(getBlurAsync.request({ ... }));
'코딩 공부 노트 > React' 카테고리의 다른 글
React Query와 상태관리 (우아한 테크) (0) | 2022.07.01 |
---|---|
!주의! React dev tools 라이브 서버에 보여지면 클나요 (0) | 2021.09.12 |
리액트 검색엔진 최적화 하는 법 meta - tag, memo (0) | 2021.05.19 |
댓글 사용하기, 댓글 알람주기 feat. firebase realtime DB (0) | 2021.05.14 |
Infinity Scroll (Debounce & Throttle 어떤걸 쓰면 좋을까?) (0) | 2021.05.14 |
Comments