日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-02-05 09:31:40 240觀看
導讀大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎(chǔ)是進階的前提是我的初心~背景我發(fā)現(xiàn)很多人背八股文真的背傻了,只知道 nextTick = 微任務(wù),其他啥都不知道,也不去了解原因,甚至大部分理解的都是錯的?先來

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎(chǔ)是進階的前提是我的初心~kyl28資訊網(wǎng)——每日最新資訊28at.com

背景

我發(fā)現(xiàn)很多人背八股文真的背傻了,只知道 nextTick = 微任務(wù),其他啥都不知道,也不去了解原因,甚至大部分理解的都是錯的?kyl28資訊網(wǎng)——每日最新資訊28at.com

先來回顧下nextTick的使用,因為 Vue 的響應(yīng)式變量是異步更新DOM的,所以當你變量修改的時候,并不能第一時間拿到最新的 DOM,而在nextTick中就可以拿到最新的 DOMkyl28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片kyl28資訊網(wǎng)——每日最新資訊28at.com

先問是不是,再問為什么

很多人認為 nextTick = 微任務(wù),這其實是錯的,正確應(yīng)該是 nextTick 優(yōu)先是 微任務(wù),不信可以直接看 Vue 的源碼kyl28資訊網(wǎng)——每日最新資訊28at.com

在src/core/util/next-tick.ts 文件中,可以看到 nextTick 優(yōu)先級如下:kyl28資訊網(wǎng)——每日最新資訊28at.com

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

圖片圖片kyl28資訊網(wǎng)——每日最新資訊28at.com

所以說 nextTick 只是優(yōu)先選擇微任務(wù)而已,當瀏覽器不支持微任務(wù)的時候,它還是會選擇宏任務(wù)kyl28資訊網(wǎng)——每日最新資訊28at.com

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

2023年面試了怎么也得有100個人了,大部分都不能比較好的回答這個問題:nextTick為啥優(yōu)先選擇微任務(wù)?kyl28資訊網(wǎng)——每日最新資訊28at.com

首先聲明一個點:Vue 的異步更新DOM 其實也是微任務(wù),比如下面的例子,你一次性更新了三次變量,其實會生成三個更新DOM微任務(wù)到隊列中kyl28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片kyl28資訊網(wǎng)——每日最新資訊28at.com

你這個時候放一個 nextTick 在后面,那就是在三個微任務(wù)后面再放一個微任務(wù)而已kyl28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片kyl28資訊網(wǎng)——每日最新資訊28at.com

我們都知道微任務(wù)是在UI渲染之前執(zhí)行的,那為什么 nextTick 能拿到最新的 DOM 呢?kyl28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片kyl28資訊網(wǎng)——每日最新資訊28at.com

更新 ≠ 渲染

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

圖片圖片kyl28資訊網(wǎng)——每日最新資訊28at.com

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

所以,與其說 nextTick 能獲取到最新的DOM,還不如說 nextTick 能獲取到最新的DOM樹信息kyl28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-73790-0.htmlNextTick 在 Vue 中如何發(fā)揮作用的?其實大部分人一知半解

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 圖文講透Golang標準庫 net/http實現(xiàn)原理 - 客戶端

下一篇: 輕松實現(xiàn) SpringBoot 中的隱私數(shù)據(jù)脫敏處理

標簽:
  • 熱門焦點
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產(chǎn)之后
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學習反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對代碼進行反混淆,尤其是使用自定義混淆器對其進行混淆時。什么是混
  • 三言兩語說透設(shè)計模式的藝術(shù)-單例模式

    寫在前面單例模式是一種常用的軟件設(shè)計模式,它所創(chuàng)建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統(tǒng)中的其他對象共享,從而減少
  • 2納米決戰(zhàn)2025

    集微網(wǎng)報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領(lǐng)先地位的英特爾,甚至初成立不久的新
  • 三星顯示已開始為AR設(shè)備研發(fā)硅基LED微顯示屏

    7月18日消息,據(jù)外媒報道,隨著蘋果首款頭顯產(chǎn)品Vision Pro在6月份正式推出,AR/VR/MR等頭顯產(chǎn)品也就將成為各大公司下一個重要的競爭領(lǐng)域,對顯示屏這一關(guān)
  • 到手價3099元起!iQOO Neo8 Pro今日首銷:安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • 榮耀Magicbook V 14 2021曙光藍版本正式開售,擁有觸摸屏

    榮耀 Magicbook V 14 2021 曙光藍版本正式開售,搭載 i7-11390H 處理器與 MX450 顯卡,配備 16GB 內(nèi)存與 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 鍵盤鍵程、
  • 榮耀Magic4 至臻版 首創(chuàng)智慧隱私通話 強勁影音系統(tǒng)

    2022年第一季度臨近尾聲,在該季度內(nèi),許多品牌陸續(xù)發(fā)布自己的最新產(chǎn)品,讓大家從全新的角度來了解當今的手機技術(shù)。手機是電子設(shè)備中,更新迭代十分迅速的一款產(chǎn)品,基
Top 主站蜘蛛池模板: 阿合奇县| 壶关县| 樟树市| 子洲县| 库车县| 崇阳县| 额尔古纳市| 龙游县| 竹北市| 保靖县| 沙河市| 永春县| 岑溪市| 泸西县| 浙江省| 寿光市| 拉孜县| 白银市| 清徐县| 灵宝市| 云梦县| 武汉市| 攀枝花市| 潞城市| 祁连县| 冕宁县| 兴宁市| 海口市| 大丰市| 东宁县| 新绛县| 尼勒克县| 庆城县| 贵州省| 肃宁县| 岚皋县| 天津市| 三穗县| 怀仁县| 隆昌县| 镇康县|