setState&forceUpdate
在react中触发状态更新的几种方式:
ReactDOM.render
this.setState
this.forceUpdate
useState
useReducer...== null) { //赋值回调
update.callback = callback;
}
enqueueUpdate(fiber, update);//update加入updateQueue...workInProgress,
ctor,
oldProps,
newProps,
oldState,
newState,
nextContext,
);
状态更新整体流程...如果当前根节点更新的优先级是normal,u1、u2都参与状态的计算,如果当前根节点更新的优先级是userBlocking,则只有u2参与计算
图片
调度
在ensureRootIsScheduled中...scheduleCallback(
schedulerPriorityLevel,
performConcurrentWorkOnRoot.bind(null, root)
);
}
状态更新