Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook Reactjs中componentDidMount和getInitialState之间的差异_Facebook_Reactjs_Flux - Fatal编程技术网

Facebook Reactjs中componentDidMount和getInitialState之间的差异

Facebook Reactjs中componentDidMount和getInitialState之间的差异,facebook,reactjs,flux,Facebook,Reactjs,Flux,我知道getInitialState在组件的生命周期中调用一次,而componentDidMount在呈现组件时调用 那么,这是否意味着在组件的生命周期中,两者都只会被调用一次?区别是什么?getInitialState在组件的第一次实例化时被调用。它应该总是返回一个对象,并且该对象将是组件中this.state的初始状态。如果您不想定义,您不必定义getInitialState,也许您不需要内部状态,在这种情况下,不必定义它 一旦组件实际装入DOM,就会调用componentDidMount。

我知道getInitialState在组件的生命周期中调用一次,而componentDidMount在呈现组件时调用


那么,这是否意味着在组件的生命周期中,两者都只会被调用一次?区别是什么?

getInitialState
在组件的第一次实例化时被调用。它应该总是返回一个对象,并且该对象将是组件中
this.state
的初始状态。如果您不想定义,您不必定义
getInitialState
,也许您不需要内部状态,在这种情况下,不必定义它

一旦组件实际装入DOM,就会调用
componentDidMount
。但并非如您所建议的那样,每次渲染组件时都是如此。如果要查找每次渲染组件时都会运行的内容(而不是
渲染
),请查看和/或

至于主要的区别,
getInitialState
实际上只是返回该组件的初始状态,没有其他内容。该函数在组件实际呈现到DOM之前很久就执行了
componentDidMount
是在组件被呈现到DOM之后直接执行的,因此,例如,您现在可以执行一些要求组件首先位于DOM上的操作,例如使用
this.getDOMNode()
检查组件根HTML元素的确切高度,或者修改它的滚动位置

不过,您是对的,在React组件实例的生命周期中,这两个组件只会被调用一次