Vue異步更新

當(dāng)調(diào)用set方法時(shí)會(huì)走dep.notify()
然后watcher.update()->queueWatcher()
每調(diào)用set一次就會(huì)調(diào)用queueWatcher() 一次,同一個(gè)屬性多次調(diào)用里面會(huì)去重,只會(huì)取最新的值,屬性不存在watcher加入隊(duì)列
啟動(dòng)異步任務(wù)nextTick()
執(zhí)行刷新函數(shù),啟動(dòng)異步函數(shù)timerFunc()
首選微任務(wù)異步操作,ios不支持promise會(huì)直接用setTimeout,下面1和2是微任務(wù)
1.promise
2.mutationobserver
3和4是宏任務(wù)
3.setImmediate
4.setTimeout
調(diào)用刷新函數(shù):
watcher.run()

1是微任務(wù):瀏覽器不會(huì)刷新 批量刷新 放到本次事件周期的前面 所以比較快
2是宏任務(wù):多任務(wù)會(huì)刷新好幾次 放到下一次的事件周期 所以比較慢

異步任務(wù):批量操作變量

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • vue在觀察到數(shù)據(jù)變化時(shí)并不是直接更新Dom,而是開(kāi)啟一個(gè)隊(duì)列,并緩沖在同一事件循環(huán)中發(fā)生的所有數(shù)據(jù)改變。在緩沖中...
    西西_80ff閱讀 1,889評(píng)論 0 0
  • 弄懂js異步 講異步之前,我們必須掌握一個(gè)基礎(chǔ)知識(shí)-event-loop。 我們知道JavaScript的一大特點(diǎn)...
    DCbryant閱讀 2,886評(píng)論 0 5
  • Night_LION閱讀 219評(píng)論 0 0
  • 不知你記憶中的夏天是什么模樣,或許就是手中的冰棒,偶爾輕風(fēng)的微涼,路邊的燒烤攤,繾倦的夕陽(yáng)?!}記 其實(shí)記憶中每...
    桃花執(zhí)酒閱讀 275評(píng)論 0 1
  • 這是第一次也是最后一次公開(kāi)記錄和Z先生有關(guān)的事情。很感謝曾經(jīng)被我卸載的APP依舊保 留 著我曾經(jīng)記錄的有關(guān)于Z先生...
    Yesters閱讀 230評(píng)論 6 0

友情鏈接更多精彩內(nèi)容