无从下笔nmd
从不合理的componentWillXXX钩子开始剖析源码 https://juejin.cn/post/6847902224287285255
react 源码/模型解析 https://react.iamkasong.com/preparation/idea.html
hook
setState的update链的构建
function dispatchAction(queue, action) {// 作用,创建一个单向循环update链const update = {action,next: null}// 环状单向链表操作if (queue.pending === null) {//当pending为空时候,update是唯一的节点,指向自身update.next = update;} else {//先把update.next指向pending.next,pending.next初始化指向第一个节点,由于最后pending = update,所以说pending.next会一直指向prevPending.next,也就是第一个节点。update.next = queue.pending.next;queue.pending.next = update;}queue.pending = update;// 模拟React开始调度更新schedule();}
pending
5———->1 就是这样的顺时针循环
| |
4 <-3 <- 2
