繁体   English   中英

如果我们不做一个 React 组件作为 Presentation 组件,这个组件不是很容易被复用吗?

[英]If we don't make a React component as Presentation component, isn't this component not easy to be re-used?

我不太明白Dan Abramov 2019 年在他的文章 Container vs Presentational component 中的评论

是不是我们仍然应该制作组件Presentational组件以便我们可以重用它们? 如果我们开始制作具有应用状态的组件,那么这个组件就不能轻易重用,因为在同一页面上有两个这样的组件会让它们相互干扰。

所以组件可以有状态,但只有“组件状态”,比如评论框是否展开,甚至评论框中的当前文本等等。它不应该与app中的某个状态紧耦合. 因为那样我们就不能真正重用这个组件,除非它肯定是整个应用程序中的单例,这意味着没有重用。

那么这是否真的意味着我们应该编写我们的组件使其可重用,并让其他组件将 App 数据作为“道具”传入? 这样,我们可以通过从外部容器传入不同的 props(和 dispatch)来重用我们的组件。

所以对于我们的可重用组件来说,不管是Container、Presentational还是组合,只要更高层的container可以传递props和dispatch让我们重用组件就行了。 这真的是丹的意思吗?

恕我直言,这个声明更多地是关于 biznes 逻辑的粒度和分离......容器通常管理一些具有一些表现组件集的特定应用程序的数据集。

当然容器组件也可以重用 只要我们的后端使用相同的(共享)模式(通过微服务/联邦)组成,Fe 用户关注者列表就可以使用通用的 Apollo 客户端(graphql)。 它可以在不同的应用程序中自由使用,并且通过使用渲染道具我们可以改变它的外观/行为。

它通常是关于可重用性的,对于状态(表示)和本地管理的状态组件(类或功能)来说要容易得多。

暂无
暂无

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

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