我在过去已经构建了一些更大的Redux应用程序(这太有趣了),但是现在我用它来构建一个简单的、单一的页面类型的东西。我之所以选择Redux,是因为有一些状态/UI操作可以管理,我认为这些操作非常适合它。而且很棒。
就像现在一样,顶层的<App />组件是连接到存储/能够分派操作的唯一组件(通过mapStateToProps/mapDispatchToProps方法),并且每个组件的后缀/区段组件本质上都是“哑组件”,它们只是不断地传递状态和动作分派函数的一部分。
我可以看到自己用另一种方式编写这篇文章,其中每个部分/组件/主要后裔分别连接到商店。我喜欢这个想法,因为会有更少的传递道具给许多后代,但上面表达的“涓涓向下”方法提醒我更多的数据流,为我写的前几个反应应用。
我只是好奇的是,在这方面的最佳方式是什么共识,或者是否有一个甚至是完全由我作为开发商?
发布于 2016-06-15 09:04:49
在应用程序的最顶层,只有一个连接组件的问题是,您必须将道具显式地传递给子组件,有时您最终会通过子组件的子组件传递属性和回调,等等。您的许多组件将从他们的父母那里接收道具,以便将它们传递给他们的孩子,而不使用它们。当您看到自己处于这种情况时,这是一个很好的指示,表明您应该考虑创建一个连接组件,而不是像Dan Abramov所说的那样:
您很难将父组件耦合到需要呈现的子组件。实际上,您传递的是许多孩子只需要的道具,而更改这些道具可能需要痛苦的重构。相反,一旦您看到组件在不使用它的情况下传递道具,我们建议使用connect()生成一个“容器”组件。
此外,只有一个顶级连接组件,您的应用程序将始终重新呈现从最上面到底部。即使在每个愚蠢的组件上都有严格的shouldComponentUpdate实现,您也会遇到糟糕的性能。
发布于 2016-06-15 09:59:38
小连接组件,因为它减少了不必要的重新呈现,应用程序的每个部分更新自己的状态。
好的解决方案:对https://www.youtube.com/watch?v=KYzlpRvWZ6c进行反应。
https://stackoverflow.com/questions/37825112
复制相似问题