Redux-Saga

Redux-Saga est une bibliothèque middleware qui gère les tâches asynchrones avec des effets secondaires, comme l'API. De plus, nous sommes capables de lire l'état et d'appeler des actions sur Saga. Il utilise des fonctions de générateur pour effectuer des tâches asynchrones.

Ce qui suit explique pourquoi nous utilisons Saga et comment l'installer. Ensuite, il est discuté des méthodes Saga utiles pour gérer l'API.

Pourquoi utilisons-nous Redux-Saga ?

La tâche principale de la saga est de gérer les appels d'API et de mettre à jour l'état en fonction de la réponse des terminaux ! L'un des principaux avantages de redux-saga est qu'il est compatible avec les tests.

Avant de travailler avec Redux-Saga, vous devez vous familiariser avec Redux.

Comment installer Redux-saga ?

Il existe deux manières d'installer redux-saga en fonction de votre gestionnaire de packages :

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;

L'API peut ressembler à ceci :

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);

Méthodes de saga

Les méthodes les plus utilisées seront expliquées dans ce qui suit :

sélectionner

Il lit à partir du sélecteur (état), voici un exemple de l'appel de sélection.

const userId = yield select(userSelectors.getUserId);

Il distribue des actions, par exemple :

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

Il appelle une fonction asynchrone, telle que l'API, par exemple :

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

Il surveille à chaque envoi d'action l'appel d'une fonction génératrice.

yield takeEvery("USER_FETCH_REQUESTED", fetchUser);

C'est la même chose que takeEvery, la seule différence est que lorsque l'appel précédent est en attente, il n'appelle plus.

yield takeLatest("USER_FETCH_REQUESTED", fetchUser);

Redux-saga est une bibliothèque pour gérer les tâches asynchrones dans redux. Dans cet article, il est expliqué pourquoi et comment utiliser Saga et les méthodes.

Suggested posts

Le rôle crucial de la "clé" dans le mappage de tableaux

Le rôle crucial de la "clé" dans le mappage de tableaux

Si vous êtes quelqu'un qui a tendance à ignorer le message d'avertissement "chaque élément doit avoir une clé unique" lors du mappage d'un tableau dans React, il est important de prendre un moment pour comprendre pourquoi cet avertissement est déclenché en premier lieu. Dans React, lors du rendu d'une liste d'éléments à l'aide de "Array.

Architecture API - Appels synchrones, asynchrones et parallèles

Architecture API - Appels synchrones, asynchrones et parallèles

Un cours accéléré avec des infographies sur ce que cela signifie et quand utiliser lequel. Contexte Un aspect essentiel du développement de l'API REST est la manière dont les clients formulent des requêtes et reçoivent des réponses.

Related posts

Ce que vous pouvez faire pendant votre saison d'attente (attendre de décrocher votre premier emploi dans la technologie)

Ce que vous pouvez faire pendant votre saison d'attente (attendre de décrocher votre premier emploi dans la technologie)

Passer à une nouvelle carrière peut être extrêmement difficile si vous essayez de le faire seul. Il est important de trouver des partenaires de responsabilité qui sont au même niveau d'apprentissage que vous, qui partagent des objectifs, une ténacité et un dynamisme similaires.

Pourquoi certains freelances simulent leur vie

Pourquoi certains freelances simulent leur vie

J'étais récemment sur Linkedin, le plus grand réseau social professionnel au monde, et j'ai trouvé des messages de designers indépendants que je suis et qui ont attiré mon attention. Ils ont tous posté des photos d'avions, sur la plage avec leurs ordinateurs portables, de piscines et de bureaux avec une vue imprenable.

VIE SANS LIMITE

Quand tu grandis, on a tendance à te dire que le monde est comme il est et que ta vie est juste de vivre ta vie à l'intérieur du monde, sans jamais risquer ta vie, juste suivre un chemin tracé et mourir à la fin, et essayer de ne pas cogner trop les murs. Mais c'est une vie très limitée.

La performance solo de la fille aux cheveux roux

En mission de Hayden, Katie se filme en train de se masturber.

La performance solo de la fille aux cheveux roux

Il était minuit passé lorsque Hayden a ramené Katie à son dortoir universitaire après leur soirée ensemble. Elle avait un cours tôt le matin et n'avait plus de vêtements de rechange après être restée avec lui la nuit précédente.