成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NextTick 在 Vue 中如何發(fā)揮作用的?其實大部分人一知半解

開發(fā) 前端
nextTick 為什么是微任務(wù),但是能獲取到最新DOM呢?因為到了 nextTick 這一步的時候,DOM樹已經(jīng)更新完了,只是還沒渲染到頁面上而已,而我們能通過DOM的一些API去獲取到最新的DOM樹內(nèi)容,比如 document.getElementById 這類方法。

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎(chǔ)是進階的前提是我的初心~

背景

我發(fā)現(xiàn)很多人背八股文真的背傻了,只知道 nextTick = 微任務(wù),其他啥都不知道,也不去了解原因,甚至大部分理解的都是錯的?

先來回顧下nextTick的使用,因為 Vue 的響應(yīng)式變量是異步更新DOM的,所以當(dāng)你變量修改的時候,并不能第一時間拿到最新的 DOM,而在nextTick中就可以拿到最新的 DOM

圖片圖片

先問是不是,再問為什么

很多人認為 nextTick = 微任務(wù),這其實是錯的,正確應(yīng)該是 nextTick 優(yōu)先是 微任務(wù),不信可以直接看 Vue 的源碼

在src\core\util\next-tick.ts 文件中,可以看到 nextTick 優(yōu)先級如下:

  • Promise.resolve().then:微任務(wù)
  • MutationObserver:宏任務(wù)
  • setImmediate:宏任務(wù)
  • setTimeout:宏任務(wù)

圖片圖片

所以說 nextTick 只是優(yōu)先選擇微任務(wù)而已,當(dāng)瀏覽器不支持微任務(wù)的時候,它還是會選擇宏任務(wù)

為啥優(yōu)先微任務(wù)?

2023年面試了怎么也得有100個人了,大部分都不能比較好的回答這個問題:nextTick為啥優(yōu)先選擇微任務(wù)?

首先聲明一個點:Vue 的異步更新DOM 其實也是微任務(wù),比如下面的例子,你一次性更新了三次變量,其實會生成三個更新DOM微任務(wù)到隊列中

圖片圖片

你這個時候放一個 nextTick 在后面,那就是在三個微任務(wù)后面再放一個微任務(wù)而已

圖片圖片

我們都知道微任務(wù)是在UI渲染之前執(zhí)行的,那為什么 nextTick 能拿到最新的 DOM 呢?

圖片圖片

更新 ≠ 渲染

其實我們要明白一個點:更新 ≠ 渲染,前面三個更新微任務(wù)只是更新DOM,修改的是DOM樹,而使用 document.getElementById這類方法去獲取到的就是DOM樹的內(nèi)容

圖片圖片

所以 nextTick 為什么是微任務(wù),但是能獲取到最新DOM呢?因為到了 nextTick 這一步的時候,DOM樹已經(jīng)更新完了,只是還沒渲染到頁面上而已,而我們能通過DOM的一些API去獲取到最新的DOM樹內(nèi)容,比如 document.getElementById 這類方法

所以,與其說 nextTick 能獲取到最新的DOM,還不如說 nextTick 能獲取到最新的DOM樹信息

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2022-01-16 20:25:57

WebAssembly網(wǎng)絡(luò)

2021-05-06 10:26:49

穩(wěn)定幣加密貨幣

2022-02-20 21:44:29

軟件系統(tǒng)架構(gòu)

2020-06-17 14:13:29

索引數(shù)據(jù)庫場景

2020-03-09 09:56:13

高并發(fā)高可用架構(gòu)

2021-10-18 11:42:23

數(shù)據(jù)系統(tǒng)權(quán)衡

2022-11-16 12:48:38

2021-03-26 00:20:34

NFT區(qū)塊鏈數(shù)據(jù)庫

2020-02-04 18:27:38

人工智能倫理學(xué)一知半解

2022-01-26 09:53:23

計算機體系結(jié)構(gòu)

2025-07-02 04:00:00

2018-11-25 21:53:10

人工智能AI開發(fā)者

2012-06-07 16:16:43

JavaScript

2020-07-03 08:54:32

云計算混合云公共云

2021-08-17 08:00:00

自然語言人工智能機器學(xué)習(xí)

2023-10-10 11:27:23

人工智能智能辦公

2016-12-12 18:45:08

Data Mining大數(shù)據(jù)

2025-01-26 16:04:09

2022-03-28 13:25:51

AI數(shù)據(jù)中心耗電量

2018-10-16 10:13:06

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 午夜精品久久久久久不卡欧美一级 | 日韩高清成人 | 日韩一区二区在线观看视频 | 亚洲欧美中文日韩在线v日本 | 色视频成人在线观看免 | 作爱视频免费观看 | 亚洲日本国产 | 中文字幕av第一页 | 有码一区 | 精品久久久久久久久久久院品网 | 国产精品美女久久久久aⅴ国产馆 | 日本91av视频| 久久国产电影 | 91人人在线 | 91看片在线观看 | 欧美日韩国产一区二区 | 国产一区二区三区免费观看视频 | 国产精品一区二 | 亚洲成av人影片在线观看 | 成人欧美一区二区三区在线观看 | 国产日韩视频 | 观看av| 色必久久| 成人在线视频网 | 久色视频在线 | 成人影院av | 国产精品免费在线 | 91精品国产综合久久久久 | 国产日韩精品视频 | 伊人狠狠| 国产美女一区二区 | 日韩欧美在线观看 | 国产精品日本一区二区不卡视频 | 99re在线 | 亚洲免费网 | 久久综合久 | av在线电影网站 | 成人妇女免费播放久久久 | 中文字幕亚洲欧美日韩在线不卡 | 国产黑丝av | 国产精品国产成人国产三级 |