gpt4 book ai didi

reactjs - React-Redux 中 和 connect() 之间的关系是什么?

转载 作者:行者123 更新时间:2023-12-02 16:58:42 24 4
gpt4 key购买 nike

我是 Redux 的新手,我正在尝试找出 <Provider> 之间的关系和 connect() .

据我了解,connect 您的组件连接到商店。但是,您在函数参数中没有任何地方告诉 connect那家商店到底在哪里!

如果我没记错的话,商店会自动提供给 connect()通过<Provider> 。这对我来说似乎非常违反直觉,因为 entire point Redux 的核心就是要透明。

所以我的问题是, <Provider> 是如何做到的?将商店转至connect()不使用某种全局变量?是否遍历整棵树,寻找connect ed 组件然后注入(inject)自身?这不是效率低下吗?如果是这样,我将如何在同一组件树中使用两个不同的存储?

其次,假设我不想使用<Provider> ,我该如何使用 connect()没有它?即,如何显式地将存储传递给每个连接的组件?

最佳答案

<Provider>connectreact-redux 的一部分模块。它们一起工作,你不应该只使用其中一个。您可以使用redux就其本身而言,无需 react-redux ,但您最终可能会重新创建 react-redux 的部分或全部功能。提供。

react-redux通过使用 React context 来工作。上下文就像一个隐藏层,用于传递由多个组件共享的变量,而无需显式传递它们。要使用上下文,您需要在某处设置上下文,而且任何想要使用context中的内容的组件也需要设置上下文。需要获取变量。在 react-redux <Provider>实质上将商店保存到 contextconnect提供了一种从 context 获取商店的方法.

如果你还没有,我recommend these videos Redux 入门和 react-redux来自 Redux 的创建者。

关于reactjs - React-Redux 中 <Provider> 和 connect() 之间的关系是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686702/

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