【问题标题】:Redux vs Context API and useReducer hookRedux vs Context API 和 useReducer 钩子
【发布时间】:2021-06-04 02:45:47
【问题描述】:

过去 6 个月我一直在使用 React,但还没有任何使用 Redux 的经验。虽然我使用过 context api 和 useReducer 钩子。我需要将现有的应用程序转换为具有大约 100-120 个组件的响应。我的问题是关于状态管理的选择。随着 context api 和 useReducer hook 的兴起,我可以只依赖这两个还是 Redux 库仍然是更好的选择?我发现用于比较的文章来自 2019 年末,所以我无法决定。 请指导

【问题讨论】:

  • 您基本上可以使用 Context API 和 useReducer 来解决 redux 解决的相同类型的问题。但请记住,有许多可用于 redux 的有用中间件可能无法轻松插入上下文 api。

标签: reactjs react-redux react-hooks


【解决方案1】:

Redux 仍然是大规模的更好选择。 假设您在全局存储中有 10000 个全局状态变量。你需要换一个。

  1. 上下文 API

它将重新渲染所有不必要的消费者组件。

  1. Redux

它允许我们有选择地重新渲染订阅更改值的组件。

所以 上下文 API 适合小规模,但不适合大规模。 在 useReducer 之前和之后,上下文 API 的基本原理仍然相同。

【讨论】:

    【解决方案2】:

    如果您不希望 Redux 提供开箱即用的时间旅行作为其设计的副产品,我认为即使对于大型应用程序,useReducer 和 contextAPI 也应该足够好。

    对于大型应用程序,可以在 Redux 中拥有大型状态(或通过组合器组合多个减速器),但避免重新渲染组件。这是因为组件是根据它所依赖的部分状态渲染的,使用 mapStateToProps 和 mapDispatchToProps 魔法。使用 contextAPI 和 useReducer 可以通过将全局状态分解为 Provider 来设计全局状态,这样只有受全局状态的特定子部分影响的子树才能通过其自己的提供者传递全局状态的该部分。

    看看这个:https://kentcdodds.com/blog/application-state-management-with-react

    【讨论】:

      猜你喜欢
      • 2021-06-21
      • 2021-05-15
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多