(16.3.0)
- 创建阶段
- constructor
- static getDerivedStateFromProps(nextProps,prevState){return{}} 用static关键字,监听props变化,更新state状态,必须return一个对象或null,返回对象,会通过setState更新组件,返回null不会更新
- render 返回一个虚拟dom
- componentDidMount 可以操作dom
- 变化阶段
- shouldComponentUpdate
- render
- getSnapshotBeforeUpdate(prevProps,prevState){return{}} Snapshot快照,return一个对象或null,返回值作为componentDidUpdate的第三个参数存在,需要配合componentDidUpdate一起使用
- componentDidUpdate(prevProps,prevState,value){}
- 卸载
- componentWillUnmount
(16.2.0)
可以说有 10 个生命周期,分三个阶段
- 创建阶段 —— 实例化阶段,除了 render 生命周期外,其它生命周期只执行一次
- constructor 初始化,接收props,设置默认状态state
- componentWillMount 组件将要被渲染,最后一次可以修改 state 的机会
- render 组件正在被渲染,进行diff算法,产生最小化差异
- componentDidMount 组件渲染结束,请求数据,第一次获取到真实的dom
- 变化阶段 —— 存在期
- componentWillReceiveProps props发生变化
- shouldComponentUpdate state发生变化,用来确定组件是否更新,性能优化
- componentWillUpdate 更新前
- render 更新
- componentDidUpdate 更新后
- 卸载阶段 —— 销毁,清理
- componentWillUnmount 组件将卸载,清理组件垃圾