React16.X生命周期

React16.x新增生命周期getDerivedstateFromPropsgetSnapshotBeforeUpdate。以下是16.4现有周期。

React16.X生命周期

官方生命周期图见http://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

① constructor(props):

                ES6类的构造函数(为了初始化state或绑定this).详见constructor(props)

② static getDerivedstateFromProps(props,state): 

      getDerivedStateFromProps 会在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。它应返回一个对象来更新 state,如果返回 null 则不更新任何内容。详见static getDerivedstateFromProps(props,state)

shouldComponentUpdate(nextProps.nextStates):

                 根据 shouldComponentUpdate() 的返回值,判断 React 组件的输出是否受当前 state 或 props 更改的影响。默认行为是 state 每次发生变化组件都会重新渲染。大部分情况下,你应该遵循默认行为。详见shouldComponentUpdate()

④ componentDidMount():

      组件挂载之后(插入DOM树中)。详见componentDidMount()

render():渲染组件,必须实现的方法。详见render()

⑤ getSnapshotBeforeUpdate():

      在组件渲染输出之前(提交到DOM树之前)调用。在此周期可以获取一些DOM树的信息。详见getSnapshotBeforeUpdate()

⑥ componentDidUpdate():

      在组件更新后会被立即调用。详见componentDidUpdate()

⑦ componentWillUnmount():

       组件销毁或卸载之后自动调用。详见componentWillUnmount()