3 回答
TA贡献1794条经验 获得超7个赞
我不是反应超常的天才,但据我了解,我们可以在以下情况下使用每个组件
无状态组件- 这些组件没有生命周期,因此应在呈现父组件的重复元素时使用这些组件,例如呈现仅显示信息且没有任何动作要执行的文本列表。
纯组件-这些是具有生命周期的项目,并且在给出一组特定的道具时,它们将始终返回相同的结果。当显示结果列表或不包含复杂子元素的特定对象数据时,可以使用这些组件,并用于执行仅影响自身的操作。这样的显示用户卡列表或产品卡列表(基本产品信息),并且用户只能执行的操作是单击以查看详细信息页面或将其添加到购物车。
普通组件或复杂组件-我使用了术语“复杂组件”,因为它们通常是页面级组件,由许多子组件组成,并且由于每个子组件都可以以自己独特的方式运行,因此您不能百分百确定它会在给定状态下呈现相同的结果。正如我通常所说的,这些应该用作容器组件
TA贡献1810条经验 获得超4个赞
React.Component
是默认的“常规”组件。您可以使用class
关键字和声明它们extends React.Component
。将它们视为具有生命周期方法,事件处理程序和任何方法的类。React.PureComponent
是使用功能对其和进行浅表比较的函数React.Component
实现的。你必须使用,如果你知道的组件具有改变的道具或状态嵌套的数据,你想重新呈现。因此,如果当您作为道具传递或设置为状态的数组或对象发生变化时需要重新渲染组件,则它们并不是很好。shouldComponentUpdate()
props
state
forceUpdate()
功能组件是没有生命周期功能的组件。它们据说是无状态的,但是它们是如此干净整洁,以至于我们现在有了钩子(自React 16.8起),因此您仍然可以拥有状态。所以我想它们只是“干净的组件”。
添加回答
举报