React组件呈现两次,不使用状态挂钩的功能组件仅呈现一次

时间:2020-03-21 11:44:24

标签: javascript reactjs

演示代码的codeandbox网址:https://codesandbox.io/s/hungry-goldstine-gmvz4

Class组件被渲染两次,没有Props和State;不使用useState钩子的功能组件仅渲染一次,而使用useState钩子的函数组件将渲染两次。

是否为获取State和Props值渲染了两次?

类组件是有状态的组件,无论状态是否已初始化?

有人可以帮我理解这个问题吗?谢谢!!!

附加图片: enter image description here

1 个答案:

答案 0 :(得分:2)

作为评论@Sagar More,StricktMode引起了它。

没有StrickMode的输出 enter image description here

请参见docs

严格模式无法自动为您检测副作用,但可以通过使其更具确定性来帮助您发现它们。这是通过有意重复调用以下方法来完成的:

类组件构造方法

渲染方法

setState更新程序功能(第一个参数)

静态getDerivedStateFromProps生命周期

shouldComponentUpdate方法