Redux-사가

Redux-Saga 는 API와 같은 부작용이 있는 비동기 작업을 처리하는 미들웨어 라이브러리입니다. 또한 Saga에서 상태를 읽고 조치를 취할 수 있습니다. 비동기 작업을 수행하기 위해 생성기 기능을 사용합니다.

다음은 Saga를 사용하는 이유와 설치 방법을 설명합니다. 그런 다음 API를 처리하는 데 유용한 Saga 메서드에 대해 설명합니다.

Redux-Saga를 사용하는 이유는 무엇입니까?

Saga의 주요 임무는 API 호출을 처리하고 엔드포인트 응답에 따라 상태를 업데이트하는 것입니다! redux-saga의 주요 장점 중 하나는 테스트 친화적이라는 것입니다.

Redux-Saga를 사용하기 전에 Redux에 익숙해야 합니다.

Redux-saga를 설치하는 방법?

패키지 관리자에 따라 redux-saga를 설치하는 두 가지 방법이 있습니다.

npm install redux-saga

yarn add redux-saga

import { call, put, takeEvery } from 'redux-saga/effects'
import Api from '...'

function* fetchUser(action) {
    try {
        const user = yield call(Api.fetchUser, action.payload.userId);
        yield put({type: "USER_FETCH_SUCCEEDED", user: user});
    } catch (e) {
        yield put({type: "USER_FETCH_FAILED", message: e.message});
    }
}

function* mySaga() {
    yield takeEvery("USER_FETCH_REQUESTED", fetchUser);
}

export default mySaga;

API는 다음과 같을 수 있습니다.

import axios from 'axios';

const Api = {
    fetchUser: (userId) => {
        return axios.get(`...?userId=${userId}`)
    }
};

export default Api;

import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'

import reducer from './reducers'
import mySaga from './sagas'

const sagaMiddleware = createSagaMiddleware();

const store = createStore(
    reducer,
    applyMiddleware(sagaMiddleware)
);

sagaMiddleware.run(mySaga);

사가 메소드

가장 많이 사용되는 방법은 다음에서 설명합니다.

고르다

선택기(상태)에서 읽습니다. 다음은 선택 호출의 샘플입니다.

const userId = yield select(userSelectors.getUserId);

예를 들어 다음과 같은 작업을 전달합니다.

yield put({type: "USER_FETCH_SUCCEEDED", user: user});

예를 들어 API와 같은 비동기 함수를 호출합니다.

const user = yield call(Api.fetchUser, action.payload.userId);

생성기 함수를 호출하기 위해 각 작업 디스패치를 ​​감시합니다.

yield takeEvery("USER_FETCH_REQUESTED", fetchUser);

takeEvery 와 동일합니다. 유일한 차이점은 이전 호출이 보류 중일 때 다시 호출하지 않는다는 것입니다.

yield takeLatest("USER_FETCH_REQUESTED", fetchUser);

Redux-saga는 redux에서 비동기 작업을 처리하기 위한 라이브러리입니다. 이 기사에서는 Saga와 방법을 사용하는 이유와 방법에 대해 설명합니다.

Suggested posts

배열 매핑에서 "키"의 중요한 역할

배열 매핑에서 "키"의 중요한 역할

React에서 배열을 매핑하는 동안 "각 요소에는 고유한 키가 있어야 합니다"라는 경고 메시지를 무시하는 경향이 있는 사람이라면 먼저 이 경고가 발생하는 이유를 잠시 시간을 내어 이해하는 것이 중요합니다. React에서 “Array.

API 아키텍처 - 동기식, 비동기식 및 병렬 호출

API 아키텍처 - 동기식, 비동기식 및 병렬 호출

이것이 무엇을 의미하고 어떤 것을 언제 사용해야 하는지에 대한 인포그래픽이 포함된 단기 집중 과정입니다. 배경 REST API 개발의 한 가지 중요한 측면은 클라이언트가 요청하고 응답을 받는 방식입니다.

Related posts

전화번호만 있으면 누구나 추적 | OSINT 조사

전화번호만 있으면 누구나 추적 | OSINT 조사

OSINT 수사관, CTF 플레이어 또는 단순히 스팸 전화를 받는 사람일 수 있습니다. 광고에서 본 번호를 확인하려는 사람.

FY24의 탄소 제거 자금 조달

경로 전반에 걸친 Carbon180의 세출 요청 내역

FY24의 탄소 제거 자금 조달

Alyson Lee, 공무 관리 고문 연방 정부의 연간 예산 책정 과정은 이산화탄소 제거(CDR) 기금 마련을 위한 노력의 핵심입니다. 매년 Carbon180은 내년의 자금 흐름을 안내하기 위해 다양한 의회 사무소에 요청을 제출합니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden의 임무를 맡은 Katie는 자위하는 자신을 촬영합니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden이 함께 저녁을 보낸 후 Katie를 대학 기숙사로 데려다 준 것은 자정 이후였습니다. 그녀는 아침에 일찍 수업이 있었고 전날 밤 그와 함께 지낸 후 다시 옷을 갈아입지 않았습니다.

조던 닐리의 살인과 "애국적" 인종차별의 문제

미국은 인종차별적 행동을 좋은 미국인이 되는 것과 동일시하지 않는 필수적인 조치를 취할 수 있습니까?

조던 닐리의 살인과 "애국적" 인종차별의 문제

[방아쇠 경고: 이 에세이에는 Jordan Neely의 살인자를 칭찬하는 사람들의 스크린 샷이 포함되어 있습니다.] 법 집행관은 마침내 그리고 아마도 마지못해 죽을 때까지 Jordan Neely를 질식시킨 사람인 Daniel Penny를 살인 혐의로 기소했습니다.