路线处理人员应该使用容器还是表示组件?

时间:2016-03-01 17:07:26

标签: reactjs react-native redux react-redux

例如:

启动我的应用程序时,我创建了一个连接组件,其中包含一些调度操作的回调,并呈现单个表示组件,而这些组件又包含构成“屏幕”(或“场景”)的许多其他表示。

然后我意识到许多组件都有不必要的渲染,因为每个组件都需要不同的状态部分。

那么,解决方案是什么?可能会向路由处理程序传递一个呈现许多容器的表示,并且每个容器都连接到它关心的状态?那么,如果两个组件使用相同的状态部分,那么它们应该是不同的容器呢? 而且,如果我采用这种方法,有一个文件夹'views'来存储这些路由处理程序是否有意义?

你是如何处理的?

谢谢!

1 个答案:

答案 0 :(得分:4)

shouldComponentUpdate()放在这些组件上,这不会是一个问题。有关详细信息,请参阅Advanced PerformanceA Deep Dive into React Perf Debugging。这正是connect()生成的组件对React Redux的作用。

对于下面的connect()组件,请注意。 connect()路由处理程序绝对没有义务,并且将组件保留在表示之下。我建议从表示组件开始,当它们变得棘手时需要将它们中的一些包装在connect()中,并且需要传递太多的道具。