gpt4 book ai didi

reactjs - 为什么react-redux将存储传递给上下文?

转载 作者:行者123 更新时间:2023-12-02 02:18:09 26 4
gpt4 key购买 nike

为什么react-redux在后台使用Provider将store传递给React上下文,因为我们可以使用store.disptach进行调度并使用store.getState获取状态,所以基本上所有功能都可以在不使用React的情况下实现.createContext。我在这里错过了什么吗?或者这样做还有其他一些好处吗?

谢谢

最佳答案

React's Context API is effectively a lightweight Dependency Injection system 。与任何 DI 系统一样,其值(value)在于避免在编译时将逻辑绑定(bind)到特定实例或实现。

特别是对于 React-Redux,Redux 连接逻辑的许多部分需要在运行时与某些 Redux 存储实例进行通信,但我们不知道是哪个我们编写代码时的 Redux 存储实例。例如:

  • 您的应用程序组件可能在实际应用程序中使用已知的单例存储实例,但您需要为每个单元测试动态创建一个唯一的存储实例:https://redux.js.org/recipes/writing-tests#connected-components
  • 您可能将 Redux 连接的组件发布为库,而这些组件肯定无法知道用户将使用哪个 Redux 存储

因此,通过上下文传递存储使我们能够编写与存储交互的组件,但我们不关心是哪个存储。它会在运行时注入(inject)。

一般来说,不要将 Redux 存储直接导入到您的组件(或其他文件)中:https://redux.js.org/style-guide/style-guide#only-one-redux-store-per-app

关于reactjs - 为什么react-redux将存储传递给上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66872430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com