Redux-Saga

Redux-Saga é uma biblioteca de middleware que lida com tarefas assíncronas com efeitos colaterais, como API. Além disso, podemos ler o estado e chamar ações no Saga. Ele usa funções geradoras para realizar tarefas assíncronas.

O seguinte descreve por que usamos o Saga e como instalá-lo. Em seguida, são discutidos métodos úteis do Saga para lidar com a API.

Por que estamos usando o Redux-Saga?

O principal dever da Saga é lidar com as chamadas da API e atualizar o estado com base na resposta dos endpoints! Uma das principais vantagens do redux-saga é ser amigável ao teste.

Antes de trabalhar com o Redux-Saga, você deve estar familiarizado com o Redux.

Como instalar o Redux-saga?

Existem duas maneiras de instalar o redux-saga com base no seu gerenciador de pacotes:

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;

A API pode ser algo assim:

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

Os métodos mais utilizados serão explicados a seguir:

selecionar

Ele lê do seletor (estado), aqui está uma amostra da chamada de seleção.

const userId = yield select(userSelectors.getUserId);

Ele despacha ações, por exemplo:

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

Ele chama uma função assíncrona, como API, por exemplo:

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

Ele observa cada despacho de ação para chamar uma função geradora.

yield takeEvery("USER_FETCH_REQUESTED", fetchUser);

É o mesmo que takeEvery a única diferença é que quando a chamada anterior está pendente não chama novamente.

yield takeLatest("USER_FETCH_REQUESTED", fetchUser);

Redux-saga é uma biblioteca para lidar com tarefas assíncronas no redux. Neste artigo, é discutido por que e como usar o Saga e os métodos.

Suggested posts

O Papel Crucial da "Chave" no Mapeamento de Arrays

O Papel Crucial da "Chave" no Mapeamento de Arrays

Se você é alguém que tende a ignorar a mensagem de aviso “cada elemento deve ter uma chave exclusiva” ao mapear uma matriz no React, é importante dedicar um momento para entender por que esse aviso está sendo gerado em primeiro lugar. No React, ao renderizar uma lista de itens usando o método “Array.

Arquitetura de API - chamadas síncronas, assíncronas e paralelas

Arquitetura de API - chamadas síncronas, assíncronas e paralelas

Um curso intensivo com infográficos sobre o que significam e quando usar cada um. Histórico Um aspecto crítico do desenvolvimento da API REST é a maneira como os clientes fazem solicitações e recebem respostas.

Related posts

Rede de TV Twitter

Rede de TV Twitter

O que é velho agora é novo de novo e o que costumava ser a coisa brilhante e brilhante agora parece opaco. Não estou falando de jeans JNCO fazendo um retorno entre os garotos legais do centro da cidade junto com outras modas do final dos anos 1990.

Chega de senhas — como as senhas substituirão sua senha

Chega de senhas — como as senhas substituirão sua senha

Para evitar ambigüidade, os seguintes termos serão usados; Autenticador; O celular que está sendo utilizado para fazer o login no Site; O site ou aplicativo que o usuário está usando para fazer a solicitação de login do Serviço; O fornecedor que fornece o serviço fornecido, por exemplo

"A Fossa das Marianas Revelada: Revelando as Terríveis Verdades Ocultas do Abismo"

"A Fossa das Marianas Revelada: Revelando as Terríveis Verdades Ocultas do Abismo"

Introdução:Bem-vindos, corajosos leitores, a uma jornada que nos levará às profundezas mais sombrias do nosso planeta. Neste blog, mergulhamos no mundo enigmático da Fossa das Marianas, revelando seus segredos ocultos e revelando as verdades arrepiantes que se escondem sob sua superfície.

A arte é sempre apolítica?

A arte é sempre apolítica?

Ontem, fechamos a porta do Festival Eurovisão da Canção deste ano com uma brilhante e caótica grand finale, onde a cantora sueca Loreen levou para casa o troféu, tornando-se a primeira mulher a vencer duas vezes e trazendo a coroa de volta para a Suécia 50 anos depois que o ABBA venceu a competição com “Waterloo”. Eles se tornaram um dos maiores artistas do cânone da música pop.