演示代码的codeandbox网址:https://codesandbox.io/s/hungry-goldstine-gmvz4
Class组件被渲染两次,没有Props和State;不使用useState
钩子的功能组件仅渲染一次,而使用useState
钩子的函数组件将渲染两次。
是否为获取State和Props值渲染了两次?
类组件是有状态的组件,无论状态是否已初始化?
有人可以帮我理解这个问题吗?谢谢!!!
答案 0 :(得分:2)
作为评论@Sagar More,StricktMode
引起了它。
请参见docs
严格模式无法自动为您检测副作用,但可以通过使其更具确定性来帮助您发现它们。这是通过有意重复调用以下方法来完成的:
类组件构造方法
渲染方法
setState更新程序功能(第一个参数)
静态getDerivedStateFromProps生命周期
shouldComponentUpdate方法