React16.X生命周期
React16.x新增生命周期getDerivedstateFromProps和getSnapshotBeforeUpdate。以下是16.4现有周期。
官方生命周期图见
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()。