Redux-Saga

Redux-Saga adalah perpustakaan middleware yang menangani tugas asinkron dengan efek samping, seperti API. Selain itu, kami dapat membaca status dan memanggil tindakan di Saga. Ini menggunakan fungsi generator untuk melakukan tugas async.

Berikut ini penjelasan mengapa kami menggunakan Saga dan cara menginstalnya. Kemudian, dibahas metode Saga yang berguna untuk menangani API.

Mengapa kami menggunakan Redux-Saga?

Tugas utama Saga adalah menangani panggilan API dan memperbarui status berdasarkan respons titik akhir! Salah satu keuntungan utama redux-saga adalah tes-ramah.

Sebelum bekerja dengan Redux-Saga, Anda harus terbiasa dengan Redux.

Bagaimana cara menginstal Redux-saga?

Ada dua cara untuk menginstal redux-saga berdasarkan manajer paket Anda:

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 dapat berupa sesuatu seperti ini:

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

Metode Saga

Metode yang paling sering digunakan akan dijelaskan sebagai berikut:

Pilih

Bunyinya dari pemilih (negara), berikut adalah contoh panggilan pilih.

const userId = yield select(userSelectors.getUserId);

Ini mengirimkan tindakan, misalnya:

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

Itu memanggil fungsi async, seperti API, misalnya:

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

Ia mengawasi setiap pengiriman tindakan untuk memanggil fungsi generator.

yield takeEvery("USER_FETCH_REQUESTED", fetchUser);

Ini sama dengan takeEvery satu-satunya perbedaan adalah ketika panggilan sebelumnya tertunda tidak menelepon lagi.

yield takeLatest("USER_FETCH_REQUESTED", fetchUser);

Redux-saga adalah perpustakaan untuk menangani tugas async di redux. Dalam artikel ini, dibahas mengapa dan bagaimana menggunakan Saga dan metodenya.

Suggested posts

Peran Penting "Kunci" dalam Pemetaan Array

Peran Penting "Kunci" dalam Pemetaan Array

Jika Anda adalah seseorang yang cenderung mengabaikan pesan peringatan “setiap elemen harus memiliki kunci unik” saat memetakan array di React, penting untuk meluangkan waktu sejenak untuk memahami mengapa peringatan ini dimunculkan sejak awal. Di Bereaksi, saat merender daftar item menggunakan “Array.

Arsitektur API - Panggilan Sinkron, Asinkron, dan Paralel

Arsitektur API - Panggilan Sinkron, Asinkron, dan Paralel

Kursus kilat dengan infografis tentang apa artinya ini, dan kapan harus menggunakan yang mana. Latar Belakang Salah satu aspek penting dari pengembangan REST API adalah cara klien membuat permintaan dan menerima tanggapan.

Related posts

Buku Pertama Seorang Anak tentang Menjadi Tinggi

Buku Pertama Seorang Anak tentang Menjadi Tinggi

(Peringatan- Ini Satire, dimaksudkan untuk Menjadi Gleefully Subversive- Jelas bukan untuk anak-anak) Anda pernah melihat ibu dan ayah Anda bersembunyi di dapur dan merokok rokok yang bau itu. Mereka memberi tahu Anda.

Mendanai penghapusan karbon di FY24

Rincian permintaan alokasi Carbon180 di seluruh jalur

Mendanai penghapusan karbon di FY24

Oleh Alyson Lee, penasihat urusan pemerintah yang mengelola Proses alokasi tahunan pemerintah federal merupakan inti dari upaya kami untuk mendanai penghilangan karbon dioksida (CDR). Setiap tahun, Carbon180 mengajukan permintaan ke berbagai kantor kongres untuk membantu mengarahkan ke mana dolar tahun depan akan mengalir.

Menciptakan Lingkungan Kerja yang Aman

Menciptakan Lingkungan Kerja yang Aman

“Dia akan melindungiku saat aku dalam bahaya. Dia akan menyembunyikan saya di tendanya.

Pembunuhan Jordan Neely dan Masalah Rasisme “Patriotik”.

Bisakah AS mengambil langkah penting untuk tidak menyamakan perilaku rasis dengan menjadi orang Amerika yang baik?

Pembunuhan Jordan Neely dan Masalah Rasisme “Patriotik”.

[Peringatan pemicu: Esai ini mencakup tangkapan layar orang-orang yang memuji pembunuh Jordan Neely.] Petugas penegak hukum akhirnya - dan mungkin dengan enggan - menuntut Daniel Penny, pria yang mencekik Jordan Neely sampai dia mati, atas pembunuhan itu.