Redux VS Context API [关闭]

2023-12-15

我非常熟悉 Context API,我完成了 Redux 速成课程,它们对我来说(原则上)很相似。问题是,我应该关注哪一个? Context API 和 Redux 之间的主要优缺点是什么?这在 React 状态管理中是最好的。


Context 和 Redux 是非常不同的工具,它们解决不同的问题,但也有一些重叠。

上下文不是“状态管理”工具。它是一种依赖注入机制,其唯一目的是使 React 组件的嵌套树可以访问单个值。由您决定该价值是什么以及如何创建它。通常,这是使用 React 组件状态的数据(即 useState 和 useReducer)来完成的。所以,你实际上是在自己做所有的“状态管理”——上下文只是为你提供了一种将其传递到树上的方法。

Redux 是一个库和一种模式,用于将状态更新逻辑与应用程序的其余部分分开,并可以轻松跟踪状态何时/何地/为何/如何更改。它还使您的整个应用程序能够访问任何组件中的任何状态。

所以,是的,您可以使用它们来传递数据,但它们不是同一件事。

更详细的内容可以看我的帖子:

  • Redux - 还没有死!
  • React、Redux 和上下文行为
  • React 渲染行为(大部分)完整指南
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redux VS Context API [关闭] 的相关文章

随机推荐

  • 将数组(元素组合)划分为自定义分区的所有方法

    我想将 n 个元素的数组划分为给定大小的子数组 并包含所有可能的元素组合 例如 Array 1 2 3 4 可以是 n 个元素 1 给定尺寸模式 仅作为示例 可能会有所不同 2 subarrays 2 elements 预期结果 1 2 3
  • 增加图像中文本行之间的间距

    我有一个单行距文本段落的输入图像 我正在尝试实现类似行间距选项的功能 以增加 减少 Microsoft Word 中文本行之间的间距 当前图像是单倍行距 如何将文本转换为双倍行距 或者说 5空间 本质上 我试图动态地重组文本行之间的间距 最
  • 控制台鼠标输入不起作用

    我正在使用 Visual Studio 开发一个 C 控制台项目 其中鼠标负责执行所有输入操作 它在 Windows 7 上运行良好 但在 Windows 10 上则不行 我将向您展示一些代码 这是我的实际代码的非常简化的版本 但这里是一样
  • Symfony2 - FOSUserBundle - 多个登录位置

    我正在使用 FOSUserBundle 并且我需要能够从 2 个不同的路由 或更多 登录 这些路线将有不同的模板 并且登录到不同的区域 登录之间唯一的区别是所需的权限 路线将类似于 site com 登录 site com admin lo
  • ApiController的自动测试

    我有一个ApiController并想通过包括路由在内的单元测试来测试它 一个例子 RoutePrefix prefix public class Controller ApiController HttpGet Route id1 pub
  • 在 C# 中手动取消固定 byte[]?

    在下面的代码中 client Connect Receive 似乎永久固定 byte 结果 导致内存永远不会被释放 因为它始终被固定 我正在寻找一种方法来告诉 C 结果在 this OnReceive 中使用后不再需要固定 但我找不到执行此
  • .NET 中不同线程之间共享的列表

    我在一个类中有一个静态列表 它将由不同的线程访问 每个线程从列表中添加 读取和删除自己的唯一项目 我想知道我是否必须担心使这个变量线程安全 因为即使同一个 List 对象在线程之间共享 它们也只会修改自己的唯一项目 你肯定必须通过以下方式实
  • 雷达动画安卓

    所以事情就是这样 我正在监视某些距离 并且我想将它们显示在雷达动画中 基础雷达图像是这样的像这样 不完全是 其中每个圆圈表示一个距离范围 这个想法是随着距离的变化 点向圆圈移动 我最初的方法是对同一雷达制作不同的图像 每个圆圈上都有一个点
  • 如何部署混合 C++/Java (JNI) 应用程序?

    tl dr C 插件需要调用 Java jar 库 如何将其部署给用户而不让用户太头疼 我正在为 Qt 应用程序编写 Qt 插件 该插件需要调用现有的 Java 库 这需要跨平台 Win Mac Linux 和架构 32 位和 64 位 I
  • MongoDB 修复命令失败

    以前我的磁盘空间不足 mongodb 停止工作 然后我增加了磁盘大小 但 mongodb 没有开始工作 虽然我启用了日记功能 但我执行了以下命令sudo u mongodb mongod dbpath var lib mongodb rep
  • 使用正则表达式在 bash 中搜索和替换

    我看过这个例子 hello ho02123ware38384you443d34o3434ingtod38384day echo hello 0 9 其语法如下 variable pattern replacement 不幸的是pattern
  • 为什么0.1有时能准确打印,有时却不能?

    I run print 0 1 print 0 2 print 0 3 print 0 4 print 0 5 print 0 5 0 4 print 0 4 0 3 print 0 3 0 2 print 0 2 0 1 表明 0 1 0
  • Capistrano 损坏的 Gemfile.lock 错误

    我正在尝试使用 Capistrano 部署我的应用程序 但收到此错误 Your Gemfile lock is corrupt The following gem is missing from the DEPENDENCIES secti
  • 如何识别显示器的数量、位置或分辨率何时发生变化? [复制]

    这个问题在这里已经有答案了 我正在构建一些需要检测监视器配置何时发生变化的东西 这包括添加 删除显示器 移动显示器位置 与主屏幕相比 或显示器分辨率发生变化 最理想的方法是捕获一些 Windows 消息 如果有 这些消息在此类事件发生时会被
  • 无法使用数据透视表制定查询来组合单行中的不同行值

    下面是实际的表格 In the table above 1 FEID is the examination ID which remains same for one exam like ist semester examination o
  • Jquery 根据其子元素之一的值查找 XML 元素

    我正在开发一个简单的 XML 电话簿应用程序来学习 JQuery 但我不知道如何执行以下操作 当用户在文本框中输入联系人的名字时 我想查找该人的完整记录 XML 看起来像这样
  • 使用Spring配置抽象工厂的实现类

    对于我的应用程序 我有一个Scale接口和实现该接口的多个类 例如NormalizedScale LogScale等等 在我的一项服务中 我需要创建许多 Scale 并且我想使用 Spring 来定义它应该创建 Scale 的哪个实现 我将
  • 当我从 sagemaker 端点获得预测时,端点会做什么?

    在 sagemaker 中 文档讨论了需要具有 4 个特定函数的推理脚本 当我们得到预测时 Python SDK 会向端点发送请求 然后推理脚本运行 但我找不到 SDK 中运行推理脚本的位置 当我浏览 sdk 代码时Predictor pr
  • PHP echo before sleep功能,不起作用

    我希望在睡眠函数执行之前在浏览器中输出回显 每次 以下代码不起作用 set time limit 0 ob implicit flush 1 ob start echo Start br ob flush for i 0 i lt 10 i
  • Redux VS Context API [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我非常熟悉 Context API 我完成了 Redux 速成课程 它们对我来说 原则上 很相似 问题是 我应该关注哪一个 Context API 和 Redux 之间的主要优缺点是什么