解析VUE中nextTick是什么
1、nextTick是Vue提供的一個(gè)全局API,由于Vue的異步更新策略導(dǎo)致我們對(duì)數(shù)據(jù)的修改不會(huì)立刻體現(xiàn),在DOM變化上,此時(shí)如果想要立即獲取更新后的DOM狀態(tài),就需要使用這個(gè)方法。
2、Vue在更新DOM時(shí)是異步執(zhí)行的。只要監(jiān)聽到數(shù)據(jù)變化,Vue將開啟一個(gè)隊(duì)列,并緩沖在同一事件循環(huán)中發(fā)生的所有數(shù)據(jù)變更。如果同一個(gè)watcher被多次觸發(fā),只會(huì)被推入到隊(duì)列中一次。這種在緩沖時(shí)去除重復(fù)數(shù)據(jù)對(duì)于避免不必要的計(jì)算和DOM操作是非常重要的。nextTick方法會(huì)在隊(duì)列中加入一個(gè)回調(diào)函數(shù),確保該函數(shù)在前面的DOM操作完成后才調(diào)用。
3、所以當(dāng)我們想在修改數(shù)據(jù)后立即看到DOM執(zhí)行結(jié)果就需要用到nextTick方法。
4、比如,在干什么的時(shí)候就會(huì)使用nextTick,傳一個(gè)回調(diào)函數(shù)進(jìn)去,在里面執(zhí)行DOM操作即可。
5、 簡(jiǎn)單了解nextTick實(shí)現(xiàn),它會(huì)在callbacks里面加入我們傳入的函數(shù),然后用timerFunc異步方式調(diào)用它們,首選的異步方式會(huì)是Promise。這讓我明白為什么可以在nextTick中看到DOM操作的結(jié)果。
有這樣一道面試題:nextTick是什么?
我們做如下實(shí)驗(yàn),在磁盤任意的位置(確保今后可以想起來(lái)),新建nextTick文件夾(可以命名為其他的)。
通過(guò)命令vue create demo創(chuàng)建以demo命名的vue2項(xiàng)目。
為了方便調(diào)試項(xiàng)目,我們通過(guò)VS Code打開創(chuàng)建的vue2項(xiàng)目demo。
我們來(lái)看操作1:

created(),mounted()按先后順序同步執(zhí)行(同步執(zhí)行可不是同時(shí)執(zhí)行,而是按順序執(zhí)行。異步,是同時(shí)進(jìn)行各自任務(wù)。),可以看到先打印了11,而后在mounted()里打印了22。
接著打印了created()里面的333,mounted()的444。這兩個(gè)怎么也按順序打印輸出了呢?
我們來(lái)看下列操作:




以上操作對(duì)數(shù)據(jù)的獲取都沒(méi)有問(wèn)題,都獲取到了更新后的值。
我們?cè)赽tn()方法里面,更改str的值試試


至此,回答面試題的問(wèn)題——nextTick是什么?
是用來(lái)獲取更新后的dom內(nèi)容。
到此這篇關(guān)于解析VUE中nextTick的文章就介紹到這了,更多相關(guān)vue中nexttick內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中獲取滾動(dòng)table的可視頁(yè)面寬度調(diào)整表頭與列對(duì)齊(每列寬度不都相同)
這篇文章主要介紹了vue中獲取滾動(dòng)table的可視頁(yè)面寬度,調(diào)整表頭與列對(duì)齊(每列寬度不都相同),需要的朋友可以參考下2019-08-08
詳解Vue2和Vue3的區(qū)別以及其鉤子函數(shù)的使用
Vue.js?3?和?Vue.js?2?是兩個(gè)主要版本的流行前端框架,它們之間有很多區(qū)別,包括性能優(yōu)化、新特性和改進(jìn)的API等,下面就跟隨小編一起來(lái)看看他們的使用區(qū)別吧2024-01-01
Vue父子組建的簡(jiǎn)單通信之控制開關(guān)Switch的實(shí)現(xiàn)
這篇文章主要介紹了Vue父子組建的簡(jiǎn)單通信之控制開關(guān)Switch的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
解決VUE框架 導(dǎo)致綁定事件的阻止冒泡失效問(wèn)題
下面小編就為大家分享一篇vue監(jiān)聽滾動(dòng)事件 實(shí)現(xiàn)某元素吸頂或者固定位置顯示方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Vue?router應(yīng)用問(wèn)題實(shí)戰(zhàn)記錄
vue-router是vue.js官方的路由插件,他和vue.js是深度集成的適合構(gòu)建單頁(yè)面應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Vue?router應(yīng)用問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
詳解Vue-cli3 項(xiàng)目在安卓低版本系統(tǒng)和IE上白屏問(wèn)題解決
這篇文章主要介紹了Vue-cli3 項(xiàng)目在安卓低版本系統(tǒng)和 IE 上白屏問(wèn)題解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04

