redux-saga

Redux-Saga es una biblioteca de middleware que maneja tareas asíncronas con efectos secundarios, como API. Además, podemos leer el estado y solicitar acciones en Saga. Utiliza funciones de generador para realizar tareas asíncronas.

A continuación se describe por qué usamos Saga y cómo instalarlo. Luego, se analizan los métodos útiles de Saga para manejar la API.

¿Por qué estamos usando Redux-Saga?

¡El deber principal de Saga es manejar las llamadas API y actualizar el estado en función de la respuesta de los puntos finales! Una de las principales ventajas de redux-saga es que es fácil de probar.

Antes de trabajar con Redux-Saga, debe estar familiarizado con Redux.

¿Cómo instalar Redux-saga?

Hay dos formas de instalar redux-saga según su administrador de paquetes:

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;

La API puede ser algo como esto:

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étodos de saga

Los métodos más utilizados se explicarán a continuación:

Seleccione

Se lee desde el selector (estado), aquí hay una muestra de la llamada de selección.

const userId = yield select(userSelectors.getUserId);

Despacha acciones, por ejemplo:

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

Llama a una función asíncrona, como API, por ejemplo:

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

Observa en cada despacho de acción para llamar a una función generadora.

yield takeEvery("USER_FETCH_REQUESTED", fetchUser);

Es lo mismo que takeEvery, la única diferencia es que cuando la llamada anterior está pendiente, no vuelve a llamar.

yield takeLatest("USER_FETCH_REQUESTED", fetchUser);

Redux-saga es una biblioteca para manejar tareas asíncronas en redux. En este artículo, se discute por qué y cómo usar Saga y los métodos.

Suggested posts

El papel crucial de la "clave" en el mapeo de matrices

El papel crucial de la "clave" en el mapeo de matrices

Si eres alguien que tiende a ignorar el mensaje de advertencia "cada elemento debe tener una clave única" al mapear una matriz en React, es importante tomarse un momento para comprender por qué se genera esta advertencia en primer lugar. En React, al renderizar una lista de elementos usando el método “Array.

Arquitectura API: llamadas síncronas, asíncronas y paralelas

Arquitectura API: llamadas síncronas, asíncronas y paralelas

Un curso intensivo con infografías sobre lo que significan y cuándo usar cuál. Antecedentes Un aspecto crítico del desarrollo de API REST es la forma en que los clientes realizan solicitudes y reciben respuestas.

Related posts

Financiamiento de la eliminación de carbono en el año fiscal 24

El desglose de las solicitudes de asignaciones de Carbon180 a través de vías

Financiamiento de la eliminación de carbono en el año fiscal 24

Por Alyson Lee, asesora de gestión de asuntos gubernamentales El proceso de asignaciones anuales del gobierno federal es fundamental para nuestros esfuerzos por financiar la eliminación de dióxido de carbono (CDR). Cada año, Carbon180 envía solicitudes a varias oficinas del Congreso para ayudar a guiar hacia dónde fluirán los dólares del próximo año.

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

Introducción: Bienvenidos, valientes lectores, a un viaje que nos llevará a las profundidades más oscuras de nuestro planeta. En este blog, profundizamos en el enigmático mundo de la Fosa de las Marianas, descubriendo sus secretos ocultos y descubriendo las verdades escalofriantes que se encuentran debajo de su superficie.

El asesinato de Jordan Neely y el problema del racismo “patriótico”

¿Puede Estados Unidos dar el paso esencial de no equiparar el comportamiento racista con ser un buen estadounidense?

El asesinato de Jordan Neely y el problema del racismo “patriótico”

[Alerta de activación: este ensayo incluye capturas de pantalla de personas que elogiaron al asesino de Jordan Neely.] Los funcionarios encargados de hacer cumplir la ley finalmente, y quizás a regañadientes, acusaron a Daniel Penny, el hombre que estranguló a Jordan Neely hasta que murió, por ese homicidio.

No más contraseñas: cómo las claves de acceso reemplazarán su contraseña

No más contraseñas: cómo las claves de acceso reemplazarán su contraseña

Para evitar ambigüedades se utilizarán los siguientes términos; autenticador; El teléfono móvil que se utiliza para realizar el inicio de sesión en el sitio web; El sitio web o la aplicación que el usuario está utilizando para realizar el servicio de solicitud de inicio de sesión; El proveedor que proporciona el servicio dado, por ejemplo