繁体   English   中英

将Redux状态传递给组件时的最佳实践

[英]Best practice when passing Redux state into components

我正在与其他几个开发人员一起开展React + Redux项目,我们无法就最佳实践在哪些方面传递状态和行动达成一致。

我的方法是拥有一个“容器”或“提供者”组件,它是父组件,所有必需的状态和操作都映射到状态并传递给子组件,从而创建单一的事实来源。 然而,缺点是,你必须记住在每个子组件中传递操作和值,这可能很难遵循。

另一种开发人员方法是在堆栈中的任何位置对需要它的每个组件使用mapStateToProps 因此,如果三个或四个级别的子组件需要某个状态,他将在该组件上使用mapStateToProps。 他还会使用import关键字直接导入动作创建者,而不是将它们称为道具。 我不喜欢这种方法,因为您可能会多次注入状态,并且无法在一个地方快速切换您的状态或操作。

我可以看到这两种方法都有它们的优点和后备,所以我只是想知道是否有一个明确的最佳实践,在何时何地将状态/动作注入到一堆React组件中。

我研究了一个相对较大的Redux代码库,我们选择的方法和我喜欢的是你在容器组件上使用mapStateToProps的第二种方法,它分派动作并将渲染委托给哑组件

您希望能够在许多地方重复使用它们而不必传递状态。 您的顶级redux状态仍然是事实的来源,但mapStateToProps将允许您仅访问此容器中所需的状态部分。

Redux文档做得非常好,检查出来,它建议实现mapStateToProps容器组件http://redux.js.org/docs/basics/UsageWithReact.html

由您决定连接到Redux的组件数量,但一般来说,连接组件越多,性能越好。 有关更多信息,请参阅有关连接多个组件Redux常见问题解答 ,以及我的博客文章Practical Redux,第6部分:连接列表,表单和性能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM