【问题标题】:React & Redux - container component inside a presentational component?React & Redux - 展示组件内的容器组件?
【发布时间】:2017-06-13 05:12:39
【问题描述】:

我知道这可能是一个基于意见的小问题,但我认为这是一个重要的问题。

简而言之,在 React 展示组件中包含 React 容器组件是一种好习惯吗?您认为这种在 React 展示组件中包含容器组件的做法的好处和坏处是什么?

我认为表现组件应该是虚拟的:它们接受道具,并根据道具行事,没有其他任何东西会影响它们。在给予某些道具时,它们的行为符合预期,并且任何地方都不应影响它们的行为。

那么在展示组件中包含容器组件可能会出现什么问题?好吧,由于容器组件通常可以访问(全局)存储(在 redux 中),因此您不能仅从展示组件的 props 中知道该组件的行为方式。因为 store 会影响容器组件的行为,并且由于它包含在展示组件中,所以展示组件不再是一个虚拟组件。你怎么看?

【问题讨论】:

标签: javascript reactjs redux


【解决方案1】:

我假设你所说的展示组件是指 ReactJS 功能组件?

如果是这样,我认为这种方法没有问题。生成的组件不会纯粹是展示性的,但它会完成定义其呈现的组件的组合的工作。

根据具体情况,这可能正是您需要的。

与其尝试从演示组件开始构建应用程序,我更喜欢采用以下方法:首先搭建我的应用程序的主体然后将我需要的内容重构到演示组件中。

【讨论】:

  • 但是如果你想发布你的展示组件,例如在其他 React 应用程序中使用呢?您不希望组件依赖于应用程序使用的存储机制吗?如果不包含容器组件,组件的可测试性也可能更容易
  • 这是真的。就像我说的那样,在这种情况下,thru 将不再被认为是表现性的。可能还有其他领域可以重构为表现形式,可能是在组合领域将要渲染的组件(或其他后代)
猜你喜欢
  • 2017-05-28
  • 2017-07-06
  • 2016-10-18
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
  • 2019-08-01
相关资源
最近更新 更多