演示组件在变聪明之前应该有多复杂?

时间:2018-02-20 00:02:50

标签: reactjs redux react-redux

在我看来,我可以让我的整个应用程序成为一个表现/哑巴组件,然后让一个容器组件传递适当的道具。

另一方面,我可以让每一个组件变得聪明。

那么,是否有一条经验法则可以决定何时使您的演示组件变得聪明?

1 个答案:

答案 0 :(得分:0)

Dan Abramov从Presentational and Container Components引述:

  

何时引入容器?

     

我建议您先使用演示组件开始构建应用。最终你会意识到你在中间组件上传递了太多道具。当你注意到某些组件没有使用他们收到的道具而只是将它们向下转发时,你必须在孩子需要更多数据时重新连接所有这些中间组件,这是引入一些容器组件的好时机。这样,您就可以将数据和行为道具获取到叶子组件,而不会在树的中间加载不相关的组件。

     

......这是一个持续的重构过程,所以不要试图在第一时间做到正确。

我认为应用程序的大小/复杂性与智能组件(容器)的数量之间应该有一个很好的平衡。

考虑在以下情况下引入容器:

  1. 层次结构变得太深,传递道具变得麻烦。
  2. 可能会在整个应用中移动/重复使用整个功能(UI +数据映射)。
  3. 由于上述或其他原因(版本控制,安全性,延迟加载等),需要封装功能。
  4. 您可以通过数据映射识别不必要的更新。
  5. 另一方面,请考虑在以下情况下共享容器:

    1. 多个组件使用相同性质的数据并形成一个可能被视为"功能的单个单元"。
    2. 映射(mapStateToProps / mapDispatchToProps)在多个邻近组件中变得重复。
    3. 另外,请记住,随着应用的发展,可能需要进行重构。