04React生命周期

constructor
- 用于初始化内部状态,使用很少
- 唯一可以直接修改 state 的地方
getDerivedStateFromProps
- 当 state 需要从 props 初始化时使用
- 尽量不要使用:维护两者状态一致性会增加复杂度
- 每次 render 都会调用
- 典型场景:表单控件获取默认值
componentDidMount
- UI 渲染完成后调用
- 只执行一次
- 典型场景:获取外部资源
componentWillUnmount
- 组件移除时被调用
- 典型场景:资源释放
getSnapshotBeforeUpdate
- 在页面 render 之前调用,state 已更新
- 典型场景:获取 render 之前的 DOM 状态
componentDidUpdate
- 每次 UI 更新时会被调用
- 典型场景:页面需要根据 props 变化重新获取数据
shouldComopnentUpdate
- 决定 VDOM 是否要重绘
- 一般可以由 PureComponent 自动实现
- 典型场景:性能优化
