# react组件生命周期 ![](https://box.kancloud.cn/bf3928224d9ddc2a05c5dbd292406772_800x344.png) ## 实例化阶段 组件初次实例化时依次调用下列方法 #### getDefaultProps #### getInitialState #### componentWillMount 该方法在首次渲染之前调用,也是再 render 方法调用之前修改 state 的最后一次机会。 #### render 该方法会创建一个虚拟DOM,用来表示组件的输出。对于一个组件来讲,render方法是唯一一个必需的方法。 #### componentDidMount 该方法不会在服务端被渲染的过程中调用。该方法被调用时,已经渲染出真实的 DOM,可以再该方法中通过 this.getDOMNode() 访问到真实的 DOM(推荐使用 ## 存在期 此时组件已经渲染好并插入到真实dom中,组件的state发生改变时依次调用的方法 #### componentWillReceiveProps #### shouldComponentUpdate 如果你确定组件的 props 或者 state 的改变不需要重新渲染,可以通过在这个方法里通过返回 false 来阻止组件的重新渲染,那么后续方法也不会执行。 #### componentWillUpdate 注意不要在此方面里再去更新 props 或者 state。 #### render 该方法会创建一个虚拟DOM,用来表示组件的输出。 #### componentDidUpdate 可以在这里访问并修改 DOM ## 销毁时 #### componentWillUnmount