官方文档
如图所示:
挂载时的钩子:
- constructor
- static getDerivedStateFromProps
- render
- componentDidMount
组件更新时的钩子:
- static getDerivedStateFromProps
- shouldComponentUpdate
- render
- getSnapshotBeforeUpdate
- componentDidUpdate
组件卸载时的钩子:
- componentWillUnmount
错误处理的钩子:
- static getDerivedStateFromError
- componentDidCatch
ajax 请求应该放在 componentDidMount 钩子里, 原因有
- constructor 会在服务端渲染(SSR) 时执行,不可以
- 和组件更新相关的钩子会重复执行,不可以
- 放组件卸载的钩子没有意义