在我看来,我可以让我的整个应用程序成为一个表现/哑巴组件,然后让一个容器组件传递适当的道具。
另一方面,我可以让每一个组件变得聪明。
那么,是否有一条经验法则可以决定何时使您的演示组件变得聪明?
答案 0 :(得分:0)
Dan Abramov从Presentational and Container Components引述:
何时引入容器?
我建议您先使用演示组件开始构建应用。最终你会意识到你在中间组件上传递了太多道具。当你注意到某些组件没有使用他们收到的道具而只是将它们向下转发时,你必须在孩子需要更多数据时重新连接所有这些中间组件,这是引入一些容器组件的好时机。这样,您就可以将数据和行为道具获取到叶子组件,而不会在树的中间加载不相关的组件。
......这是一个持续的重构过程,所以不要试图在第一时间做到正确。
我认为应用程序的大小/复杂性与智能组件(容器)的数量之间应该有一个很好的平衡。
考虑在以下情况下引入容器:
另一方面,请考虑在以下情况下共享容器:
mapStateToProps
/ mapDispatchToProps
)在多个邻近组件中变得重复。另外,请记住,随着应用的发展,可能需要进行重构。