一步一步教你把 Redux Saga 添加到 React&Redux 程序中

news/2024/7/10 0:21:18 标签: 中间件, java, vue, css, javascript

时间紧迫?先克隆 GitHub 仓库代码吧!

git clone --branch redux-saga https://github.com/rajjeet/react-quick-start redux-saga-quick-start
cd redux-saga-quick-start
npm install
npm start

第1步:安装 redux-saga

npm install redux-saga

第2步:导入库

/src/configure-store.js

import { createStore, applyMiddleware } from  redux ;
import createSagaMiddleware from  redux-saga ;
import "regenerator-runtime/runtime";
...

applyMiddleware 是一个辅助函数,为 redux 的 dispatch 函数添加了功能。

默认的 redux-saga 导出(在代码中为 createSagaMiddleware)是创建中间件实例的工厂。

通过导入 regenerator-runtime/runtime 允许 Babel 进行异步动作的转译,而不会出现任何问题。如果忽略此行,则你的应用会失败,并显示以下错误消息:Uncaught ReferenceError:regeneratorRuntime is not defined

第3步:创建根 saga

/src/configure-store.js

function* exampleSaga() {
  console.log("Example saga reached");
}

Saga 只是生成器函数。与正常函数不同,生成器可以用 yield 关键字暂停对异步语句的执行。

与根 reducer( createStore 的第一个参数)一样,此 saga 充当一棵树的根,其中每个树节点都将是另一个 saga。这使我们可以将 saga 和 reducers 并置在使用它们的组件附近。这也使它们易于管理,因为它们仅包含与附近文件相关的代码。

在例子中,exampleSaga只是执行一次并终止的普通函数。我们将在以后的教程中探讨生成器的用法。

第5步:创建 Saga 中间件实例

/src/configure-store.js

const sagaMiddleware = createSagaMiddleware();

执行我们代码中的 redux-saga 默认导入来获取 saga 中间件的实例。

第5步:将 saga 中间件应用到 redux

/src/configure-store.js

export const store = createStore(countReducer, applyMiddleware(sagaMiddleware));

applyMiddleware(sagaMiddleware) 返回 store enhancer。通过使用工具函数 applyMiddleware,我们可以组合多个中间件并返回一个 store enhancer。 createStore 仅接受单个 store enhancer,因此需要 applyMiddleware。我们将为多个中间件使用一个中间件数组。

第6步:运行 saga

/src/configure-store.js

sagaMiddleware.run(exampleSaga);

run() 用来接受生成器并在后台运行该进程。通过该过程,我们可以并行创建多个过程并执行许多与 Redux 相关的函数。另外要注意,它必须在应用 saga 中间件之后运行。

Redux-Saga 配置 Store

这是整合 redux-saga 之后我们最终 store 的配置。

/src/configure-store.js

import { createStore, applyMiddleware } from  redux ;
import { countReducer } from  ./counter/reducer ;
import createSagaMiddleware from  redux-saga ;
import "regenerator-runtime/runtime";

function* exampleSaga() {
  console.log("Example saga reached");
}

const sagaMiddleware = createSagaMiddleware();

export const store = createStore(countReducer, applyMiddleware(sagaMiddleware));

sagaMiddleware.run(exampleSaga);

这就是在程序中使用 redux-saga 的最低要求, 非常简单。

我发现现在的前端圈大多是拿来主义,多数研究的是工具怎么使用,基本不会深入思考。但是只有掌握技术的思想精髓,才能紧跟技术发展的潮流。所以,今天我想推荐点硬核的。

????  专题课???? :你不知道的硬核数据状态管理

课程将采用对比学习的方式,深入探究当下流行的Mobx、Vuex、Redux思想精髓,硬核底层实现。同时结合项目,剖析最佳数据状态管理方案,助你快速提升技术实力,直达offer。

关注【小生方勤】的你有特别福利:领免单卡,仅需0.02元

前40个报名成功还送 98 元 vue3.0 专题课一个

名额有限,放下犹豫,立即行动,成功无限!

????????????


http://www.niftyadmin.cn/n/1252143.html

相关文章

php 公共代码段,PHP常用代码段集锦(一)

date_default_timezone_set(Asia/Shanghai);//sprintf 用方法一 保留指定精度$number 123.0002323;$txt sprintf("%.2f",$number);echo $txt;结果: 123.00//用法二:替换变量$test 100;$d sprintf("redis_user_%s", $test);echo …

图解 Vue 响应式原理

最近部门分享,有同学提到了 Vue 响应式原理,大家在讨论时,发现一些同学对这一知识理解还不够深入,不能形成一个闭环,为了帮助大家理解这个问题,我重新过了一下 Vue 源码,并整理了多张流程图&…

oracle t几,Oracle中如何用T?

一、用脚本启动并设置跟踪的示例 通过这个示例,你可以了解用脚本进行跟踪所涉及到的存储过程,要了解这些存储过程的具体语法和参数的含义,请查询联机帮助 /****************************************************//* Created by: SQL Profile…

20k 以上面试必问:Webpack 原理和优化

我身边很多朋友都觉得 Webpack 不重要,认为只要团队里有人会就可以,而那个人不需要是自己。那么我就给你一个必须学它的理由:Webpack 原理和优化:工资 20k 面试必问如果你想拿到高薪,Webpack 就是你绕不过去的一道门槛…

oracle 根据归档日志 回退,Oracle数据库中闪回恢复的详细分析

我们今天主要和大家分享的是Oracle数据库中的闪回恢复,其中包含Oracle备份和恢复案例 ,还有相关的Oracle 学习笔记:,Backup & Recovery 常用的相关命令 ,以及 重建Control File的实际内容的描述。更多相关推荐 Oracle9i开始提…

使用 Vue 3.0,你可能不再需要 Vuex 了

Vuex 是一个很棒的状态管理库。它很简单,并与 Vue 集成的非常好。为什么会有人放弃 Vuex ? 原因可能是即将发布的 Vue3 版本公开了底层的响应式系统,并介绍了构建应用程序的新方法。新的响应式系统非常强大,它可以直接用于集中的状态管理。你…

属于国外crm软件oracle,最实用的5款在线CRM软件,前3名全是国外的

导语:随着数字化时代的到来,大多数企业都会选择使用在线CRM软件来管理自己的销售及客户资源,从而提高资源利用率,加强企业对销售数据的把控。随着数字化时代的到来,大多数企业都会选择使用在线CRM软件来管理自己的销售及客户资源,从而提高资源利用率,加强企业对销售…

oracle_2c下载,Oracle 19C下载和安装(二)

Oracle 19C下载和安装(二)一:Oracle 19C下载[rootcjcos Oracle_1903_for_Linux]# pwd/package/Oracle_1903_for_Linux[rootcjcos Oracle_1903_for_Linux]# ll -rthtotal 2.9G-rw-r--r--. 1 root root 2.9G Jan 16 12:11 LINUX.X64_193000_db_home.zip二:…