Notes

React 组件生命周期

官方推荐 Cheat sheet

react life cycle cheat sheet

v16.4.2

Mounting 阶段

组件实例被创建和插入到 DOM 中

componentWillMount() 被标记为 legacy, 不推荐再使用

Updating 阶段

props 与 state 的改变都会引起 update

  1. static getDerivedStateFromProps()
  2. shouldComponentUpdate(nextProps, nextState)
  3. render()
  4. getSnapshotBeforeUpdate()
  5. componentDidUpdate()

componentWillUpdate(), componentWillReceiveProps() 被标记为 legacy, 不推荐再使用

Unmounting 阶段

组件实例被移除出 DOM

Error Handling 阶段

异常处理方法,能捕抓到的异常范围有渲染过程,生命周期方法,子组件的 constructor 方法

很少用到的生命周期方法

不推荐再使用

render()

shouldComponentUpdate() 返回 false 时,render() 不会执行

constructor(props)

componentDidMount()

componentDidUpdate(prevProps, prevState, snapshot)

shouldComponentUpdate() 返回 false 后,componentDidUpdate 不会被调用

componentWillUnmount()

shouldComponentUpdate(nextProps, nextState)

static getDerivedStateFromProps(props, state)

关于是否应该使用此方法的指导 You Probably Don’t Need Derived State

getSnapshotBeforeUpdate(prevProps, prevState)