关于react.js:终于知道react和dataloader是怎么合并操作的了-setState

41次阅读

共计 444 个字符,预计需要花费 2 分钟才能阅读完成。

终于晓得了,没想到这么简略。以前的纳闷就是,里面疯狂 setState,setState 本身怎么晓得以后调用是最初一次调用了,这之后我就应该执行真正的赋值操作。其实基本就不须要晓得,而是这样的,参考:https://zhuanlan.zhihu.com/p/…

function enqueueSetState(stateChange, component) {
    // 如果 queue 的长度是 0,也就是在上次 flush 执行之后第一次往队列里增加
    if (queue.length === 0) {defer( flush);
    }
    queue.push( {
        stateChange,
        component
    } );
    if (!renderQueue.some( item => item === component) ) {renderQueue.push( component);
    }
}

这第一次调用的时候,就申明了,我须要异步的执行真正的更新操作。这样,所有的同步的调用 push 完了之后他就会立即调用更新操作。
切实没想到会这么简略,亏我想破了脑袋

正文完
 0