NPM 包 Sagas 是一种用于处理复杂异步流程的库。它是 Redux 的一个插件,可以帮助 Redux 处理副作用。本文将详细介绍 Sagas 的使用教程,包括安装、配置和示例代码等内容。
安装
要使用 Sagas,首先需要安装 Redux 和 Redux Saga。可以通过 NPM 包管理器来安装。
npm install --save redux redux-saga
配置
创建 Sagas
创建 Sagas 是用来处理副作用的函数。要创建 Sagas,需要使用 Redux Saga 提供的 effect
函数。
-- -------------------- ---- ------- ------ - ---------- ----- --- - ---- --------------------- --------- ------------ - ----- ------------------------ --------- -------- - --- - ----- ----- - ----- -------------------- ---------------- ----- ---------- ---------------------- -------- - ----- --- - ----- ---------- ---------------------- -------- ------------ - --- -
takeEvery
用于“监听”指定的 Redux action。当 Redux 发出FETCH_POSTS
时,fetchPosts
函数会被调用。call
用于调用函数,这里调用了Api.fetchPosts
函数。put
用于发出一个新的 Redux action。
运行 Sagas
要运行 Sagas,需要在应用程序的入口文件中引入 Sagas 并创建一个 sagaMiddleware。
-- -------------------- ---- ------- ------ - ------------ --------------- - ---- -------- ------ -------------------- ---- ------------ ------ ----------- ---- ------------- ------ - ---------- - ---- ---------- ----- -------------- - ----------------------- ----- ----- - ------------ ------------ ------------------------------- -- -------------------------------
createSagaMiddleware
函数创建了一个 sagaMiddleware。applyMiddleware
函数将创建的 sagaMiddleware 应用到 Redux store 中。fetchPosts
是在前面创建的 Sagas。
示例代码
下面的示例代码演示了如何使用 Sagas 处理异步流程。
actionTypes.js
export const POSTS_REQUEST = 'POSTS_REQUEST'; export const POSTS_SUCCESS = 'POSTS_SUCCESS'; export const POSTS_FAILURE = 'POSTS_FAILURE';
actions.js
import { POSTS_REQUEST } from './actionTypes'; export const fetchPosts = (url) => ({ type: POSTS_REQUEST, payload: { url } });
reducers.js
-- -------------------- ---- ------- ------ - -------------- ------------- - ---- ---------------- ----- ------------ - - ------ --- ------ ---- -- ------ ------- -------- ------ - ------------- ------- - ------ ------------- - ---- -------------- ------ - --------- ------ ------------- ------ ---- -- ---- -------------- ------ - --------- ------ -------------- -- -------- ------ ------ - -
sagas.js
-- -------------------- ---- ------- ------ - ----- ---- --------- - ---- --------------------- ------ - -------------- -------------- ------------- - ---- ---------------- ------ ----- ---- -------- --------- ------------------ - --- - ----- -------- - ----- ------- -- ------------------------------- ----- ----- - -------------- ----- ----- ----- -------------- ----- --- - ----- --- - ----- ----- ----- -------------- -------- --------- --- - - ------ ------- --------- ---------- - ----- ------------------------ ------------ -
index.js
-- -------------------- ---- ------- ------ ----- ---- -------- ------ - ------ - ---- ------------ ------ - -------- - ---- -------------- ------ -------------------- ---- ------------- ------ --- ---- ------------------- ------ ----------- ---- ------------- ------ -------- ---- ---------- ----- -------------- - ----------------------- ----- ----- - ------------ ------------ ------------------------------- -- ----------------------------- ------- --------- -------------- ---- -- ------------ ------------------------------- --
以上就是关于 Sagas 的使用教程,希望这篇文章对你有帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005a18381e8991b448ed53c