React组件的生命周期image.png
    组件生命周期调用的顺序,如上图:

    • constructor():只会初始化执行一次。
    • static getDerivedStateFromProps() 初始化和更新都会执行
    • render() 初始化和更新都会执行
    • getSnapshotBeforeUpdate:在最近一次渲染输出(提交到 DOM 节点)之前调用。它使得组件能在发生更改之前从 DOM 中捕获一些信息(例如,滚动位置)。此生命周期方法的任何返回值将作为参数传递给 componentDidUpdate()。比如得到最新的滚动条信息。然后在componentDidMount中进行副作用操作,更新页面的滚动条。
    • componentDidMount() 完成dom渲染后的回调。如需通过网络请求获取数据,此处是实例化请求的好地方。这个方法是比较适合添加订阅的地方。如果添加了订阅,请不要忘记在 componentWillUnmount() 里取消订阅。比如:计时器。

    由于生命周期只是适用于类组件,所以对于函数组件来说,需要上诉组件不同周期的功能,有对应的hooks,与之对应起来。