image.png
    官方文档
    如图所示:
    挂载时的钩子:

    • constructor
    • static getDerivedStateFromProps
    • render
    • componentDidMount

    组件更新时的钩子:

    • static getDerivedStateFromProps
    • shouldComponentUpdate
    • render
    • getSnapshotBeforeUpdate
    • componentDidUpdate

    组件卸载时的钩子:

    • componentWillUnmount

    错误处理的钩子:

    • static getDerivedStateFromError
    • componentDidCatch

    ajax 请求应该放在 componentDidMount 钩子里, 原因有

    • constructor 会在服务端渲染(SSR) 时执行,不可以
    • 和组件更新相关的钩子会重复执行,不可以
    • 放组件卸载的钩子没有意义