Facebook Reactjs中componentDidMount和getInitialState之间的差异
我知道getInitialState在组件的生命周期中调用一次,而componentDidMount在呈现组件时调用Facebook Reactjs中componentDidMount和getInitialState之间的差异,facebook,reactjs,flux,Facebook,Reactjs,Flux,我知道getInitialState在组件的生命周期中调用一次,而componentDidMount在呈现组件时调用 那么,这是否意味着在组件的生命周期中,两者都只会被调用一次?区别是什么?getInitialState在组件的第一次实例化时被调用。它应该总是返回一个对象,并且该对象将是组件中this.state的初始状态。如果您不想定义,您不必定义getInitialState,也许您不需要内部状态,在这种情况下,不必定义它 一旦组件实际装入DOM,就会调用componentDidMount。
那么,这是否意味着在组件的生命周期中,两者都只会被调用一次?区别是什么?
getInitialState
在组件的第一次实例化时被调用。它应该总是返回一个对象,并且该对象将是组件中this.state
的初始状态。如果您不想定义,您不必定义getInitialState
,也许您不需要内部状态,在这种情况下,不必定义它
一旦组件实际装入DOM,就会调用componentDidMount
。但并非如您所建议的那样,每次渲染组件时都是如此。如果要查找每次渲染组件时都会运行的内容(而不是渲染
),请查看和/或
至于主要的区别,getInitialState
实际上只是返回该组件的初始状态,没有其他内容。该函数在组件实际呈现到DOM之前很久就执行了componentDidMount
是在组件被呈现到DOM之后直接执行的,因此,例如,您现在可以执行一些要求组件首先位于DOM上的操作,例如使用this.getDOMNode()
检查组件根HTML元素的确切高度,或者修改它的滚动位置
不过,您是对的,在React组件实例的生命周期中,这两个组件只会被调用一次