React 生命周期分为三个不同的阶段:挂载阶段、更新阶段和卸载阶段。
1. 挂载阶段(Mounting Phase):
- constructor:组件实例化时调用,用于初始化状态和绑定方法。
- static getDerivedStateFromProps:在组件实例化和接收新的props时调用,用于根据新的props更新state。
- render:根据组件的props和state,返回要渲染的元素。
- componentDidMount:组件挂载后调用,可以进行异步操作、订阅事件等。
2. 更新阶段(Updating Phase):
- static getDerivedStateFromProps:在接收新的props时调用,用于根据新的props更新state。
- shouldComponentUpdate:在接收新的props或state时调用,用于决定是否重新渲染组件。
- render:根据组件的props和state,返回要渲染的元素。
- componentDidUpdate:组件更新后调用,可以进行DOM操作、网络请求等。
3. 卸载阶段(Unmounting Phase):
- componentWillUnmount:组件卸载前调用,可以进行清理操作,如取消订阅、清除定时器等。
此外,还有一些其他的生命周期方法:
- static getDerivedStateFromError:在子组件发生错误时调用,返回一个新的state以渲染错误信息。
- componentDidCatch:在子组件发生错误后调用,可以用于记录错误信息。
需要注意的是,React 16.3版本之后引入了新的生命周期方法,如getDerivedStateFromProps和getSnapshotBeforeUpdate,用于替代旧的生命周期方法,如componentWillReceiveProps和componentWillUpdate。