Redux Thunk17 Mar 2025 | 4 分钟阅读 引言Redux 是一个流行且开源的 JavaScript 库,主要用于管理应用程序的状态。它也常用于与 React 或 Angular 一起开发用户交互式界面。 此外,需要注意的是,Redux 的 action 是异步分派的。这对于需要与应用程序接口(API)连接以并行执行外部副作用的非平凡应用程序来说,是一个相当大的问题。Redux 也可以被视为一个中间件,用于处理 action 和 reducer 之间的分派和通信。由于 Redux 的 action 是异步分派的,有两个中间件库可以满足此需求:Redux-Saga 和 Redux Thunk。在这里,我们将讨论 Redux Thunk。 什么是 Redux Thunk?Thunk 在编程中是一个逻辑概念,用于处理一个函数,该函数主要用于延迟任何操作的计算或求值。 Redux Thunk 作为一种中间件,在调用 action creators 时,它会返回一个函数而不是一个对象。返回的函数接收来自 store 的 dispatch 方法,然后在异步操作完成后,在函数体内用于同步地 dispatch。让我们继续讨论 Redux Thunk,以及它的安装和使用。 安装在设置 Redux Thunk 之前,我们需要设置依赖项,因为它同时适用于客户端和服务器端。你可能需要在你的系统上预装 node 或 yarn。运行下面显示的命令。 一旦你启动了你的 yarn 或 node 服务器,现在是设置中间件的时候了。Redux Thunk 是一种介于 action 和 reducer 之间的中间件,可以改变状态的行为方式。在你的 index.js 文件中,我们需要使用 compose 方法来添加一个 store。输入下面显示的命令。 或者,如果你想在我们的 React 应用程序中添加一个设计组件,我们可以使用 Redux Thunk 来设置中间件。为此,我们修改了上面的代码,包含了 HTML 和 CSS 组件,如下所示。 现在,Redux thunk 已被导入并应用于你的应用程序。 在示例应用程序中使用 Redux Thunk。使用 Redux Thunk 的主要目标是建立与外部 API 的异步通信,用于获取和保存数据。它使得 dispatch action 更加容易,这些 action 遵循了与外部 API 请求的整个生命周期的范例。 例如,考虑我们正在创建一个井字棋游戏。在开始创建游戏之前,可能需要 dispatch 一个 action。如果创建成功,我们也需要 dispatch 另一个 action,因为游戏涉及多个步骤。如果出现错误,我们可能会将详细信息保存在服务器上,这可以通过创建另一个错误 action 并将其 dispatch 到你的容器组件中来实现。考虑下面游戏的代码示例。 在上面的代码片段中,我们看到了 addTickTackToe action creator 如何返回一个函数而不是一个常规对象。这个函数直接从 store 接收 dispatch 方法。如果我们观察函数体内部,第一个 dispatch 会立即执行一个同步 action,这个 action 表明你开始将数据保存到外部 API。如果我们收到服务器的响应,它就将 action 标记为成功,因为数据可能已从响应中获得。然而,如果发生错误,我们再次 dispatch 不同的同步 action,并附带错误消息。 我们可以考虑另一个使用 Redux Thunk 的例子,用于开始同步 dispatch action。考虑一个我们应用了中间件的 increment counter,如下所示。 注意:dispatch action 可以与上面定义的 increment 函数一起使用,并带有时间限制。我们以 1000 毫秒作为默认时间间隔。另外,dispatch 函数使用同步或异步 action 调用。总结在本文中,我们了解了 Redux 和 Redux Thunk 的基础知识。我们还了解了同步设置 action 的各种方法,以及 Redux Thunk 如何作为中间件来建立它们。需要记住的是,Redux 允许我们在创建和利用 store 的 React 应用程序中同步 dispatch action,并且依赖于外部 API 来实现数据的紧密集成。 下一个话题三角学选择题 |
在不断变化的软件开发领域,全栈开发已成为一项关键策略,涵盖了前端和后端技术。“全栈”一词描述了在整个开发过程中所需的广泛技能,从创建用户界面到管理数据库和服务器端……
7 分钟阅读
火是一种化学反应,将燃料和氧气转化为二氧化碳和水。由于它是一种放热反应,因此会产生热量。这是因为连接氧分子的化学键通常较弱,而产生的新化学键更稳定,从而导致……
阅读 8 分钟
引言 在不断变化的 IT 领域,私有云公司的出现已成为一个决定性的趋势。随着企业努力充分发挥数字化转型的潜力,对安全、适应性强和可扩展的计算解决方案的需求比以往任何时候都更大。对于...
阅读 6 分钟
手机游戏是度过闲暇时光的有趣方式之一。在智能手机上玩游戏总是充满娱乐和乐趣。游戏玩家喜欢玩的一些热门游戏是新推出的手机游戏,如《PUBG Mobile》、《FreeFire》、《Fortnite》以及很多...
阅读 8 分钟
Minecraft 是世界上最受欢迎的游戏之一。它可供 PC、笔记本电脑和手机下载。它也适用于 Android、Windows、Mac、iPhone 和 PlayStation。它由瑞典公司 Mojang 创建,现在已被 Microsoft 收购。
阅读 6 分钟
选择一所好大学是一项艰巨的任务,因为许多工程学院提供各种课程。想要入读浦那顶尖工程学院之一的潜在学生也面临着同样的挑战。浦那共有 129 所工程学院,其中 120 所为私立……
阅读 10 分钟
尽管世界各地的河流和湖泊可能看起来是完美的自然景观,但它们提供的远不止美丽的景色。我们的经济依赖于这些水道,它们还提供娱乐和旅游机会以及水力发电和农业。它们...
阅读9分钟
引言 营销中的一个基本概念是需求弹性模数,它估计在价格上涨时,产品或服务的总体生产量如何变化。对于财务分析师、公司(包括政策制定者)来说,考虑这种适应性至关重要,因为它提供了重要的视角……
7 分钟阅读
简介 在图形设计和数字图像方面,Adobe Photoshop 是创新的最高水平。几十年来,画家、摄影师、设计师、画家和世界各地众多其他创意工作者一直依赖它。凭借其丰富的功能集和...
7 分钟阅读
引言 入门级科技职位包括备受追捧的职位,如网页开发者、信息安全分析师和软件工程师,这使得它们成为进入新职业领域的人的诱人选择。随着新技术的不断涌现,这些职位也在不断演变。在大辞职现象中,许多...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India