react生命周期方法

Mounting阶段,当一个组件的实例被创建并插入到DOM中时,下面这些函数会被调用:

constructor()

componentWillMount:组件即将被渲染到页面上,render之前最后一次修改状态的机会

render:生成虚拟的DOM节点,只能访问this.props和this.state,只有一个顶层组件,不允许修改状态和DOM输出

componentDidMount:组件已经渲染到页面上,成功render并渲染完成真实的DOM之后触发,可以修改DOM

Updating阶段,属性和状态的修改会导致更新,当一个组件被re-render时会调用以下函数:

componentWillRecieveProps:组件将要接收到属性时调用,父组件修改属性触发,可以修改新属性、修改状态

shouldComponentUpdate:当组件接受到新属性或新状态时触发,判断组件是否需要更新,返回false会阻止render调用

componentWillUpdate:组件将要更新,不能修改属性和状态

render:同上

componentDidUpdate:组件已经更新,可以修改DOM

Unmounting阶段,当一个组件被移出DOM时调用

componentWillUnmount:在删除组件之前进行清理操作,比如计时器和事件监听器