Vue的异步更新策略

别来无恙 提交于 2020-01-25 03:27:36

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <script type="text/javascript">
        let callbacks = [];
let pending = false;
        for (var i = 0; i <4; i++) {
            if(i == 1){

                            nextTick(function(){
                console.log("更新1");
            });
            }else{

                            nextTick(function(){
                console.log("更新2");
            })
                                }
        }

        // 存储nextTick


function nextTick (cb) {
    callbacks.push(cb);

    if (!pending) {
        // 代表等待状态的标志位
        pending = true;
        setTimeout(flushCallbacks, 0);
    }
}

function flushCallbacks () {
    console.log("---1---");
    pending = false;
    const copies = callbacks.slice(0);
    callbacks.length = 0;
    for (let i = 0; i < copies.length; i++) {
        copies[i]();
    }
}


    </script>
</body>
</html>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!