Redux Saga는 Redux 사용 중에 필요한 비동기 작업을 쉽게 처리하도록 도와주는 라이브러리
import { select, call, put, take } from "redux-saga/effects";
function* saga() {
const id = yield select(getID); // redux에서 값 가져오기
const result = yield call(fetchData, id); // API 호출하기
yield put(result); // 응답값 redux에 업데이트 하기
}
function* watchSaga() {
take(GET_DATA_ACTION, saga); //GET_DATA_ACTION 기다리기
}
select: redux 저장소에서 값을 가져올 때 사용call: 비동기 요청 함수를 실행할 때 사용put: redux 저장소의 값을 업데이트하는 action을 dispatch할 때 사용take: redux의 action이 dispatch되면 saga를 실행하도록 action을 구독할 때 사용fork/spawnfork: 다중 비동기 요청에 사용. 자녀들의 작업이 부모에게 종속spawn: 다중 비동기 요청에 사용. 자녀들의 작업이 부모로부터 독립if(kakao)2020 두통없는 비동기 I/O 처리를 위한 Redux-Saga 활용기 - 링크