setState 和 batchUpdate
- 有时异步(普通使用),有时同步(Dom事件,setTimeout)
- 有时合并(对象形式), 有时不合并(函数形式)
- 后者比如Object.assign
有时异步(普通使用),有时同步(Dom事件,setTimeout)
- 自己定义的DOM事件
核心要点
- setState 主流程
- batchUpdate机制
- transaction(事物)机制
setState主流程
this.setState(newState) => newState存入pending队列
=> 是否处于batch update
=(yes)=> 保存组件与dirtyComponents
/ =(no)=> 便利所有dirtyComponents调用updateComponent 更新 pending state or props
setState 异步还是同步?
setState无所谓异步还是同步
看是否能命中batchUpdate机制
判断isBatchingUpdates
- 生命周期(和调用它的函数)
- React中注册的事件(和调用它的函数)
- React可以"管理"的入口