nextTick 的原理和使用的場景

2021-10-11 03:48:37 字數 473 閱讀 7224

1.使用原理

1) vue是非同步執行dom更新的,一旦觀察到資料變化,vue就會開啟乙個佇列,然後把在同一事件迴圈當中觀察到資料變化的watcher推送進這個佇列,如果這個watcher被觸發多次,只會被推送到佇列一次,這種緩衝行為可以有效的去掉重複資料造成的不必要的計算和dom操作,這樣可以提高渲染效率。

2) 如果要獲取更新後的dom元素,可以使用vue內建的$nexttick方法,引數是乙個函式。它的作用類似settimeout,進行執行非同步的操作。

2.應用

vue中的nexttick主要用於處理資料動態變化後,dom還未及時更新的問題,用nexttick可以獲取資料更新後最新dom的變化。

3.場景:

1)第三方外掛程式,在vue生成的某些dom動態發生變化時重新應用該外掛程式。

2)檢視更新之後,基於新的檢視進行操作。

vue 你知道nextTick的原理嗎?

提到dom的更新是非同步執行的,只要資料發生變化,將會開啟乙個佇列,並緩衝在同一事件迴圈中發生的所有資料變更。如果同乙個 watcher 被多次觸發,只會被推入到佇列中一次。簡單來說,就是當資料發生變化時,檢視不會立即更新,而是等到同一事件迴圈中所有資料變化完成之後,再統一更新檢視。關於非同步的解析...

vue的nextTick使用場景

首先我們需要明白vue是依靠資料驅動檢視更新的,而該更新的過程是非同步的 換種說法也就是 vue在偵聽到你的資料發生變化時,將開啟乙個佇列 該佇列被vue官方稱為非同步更新佇列 而檢視需要等佇列中所有資料變化完成之後,再統一進行更新。這就是我們通常在資料變化後獲取節點使用this.nexttick ...

正確使用Vue裡的nextTick方法

使用swiper做乙個移動端輪播外掛程式,需要先非同步動態載入資料後,然後使用v for渲染節點,再執行外掛程式的滑動輪播行為。解決這個問題,我們通過在元件中使用vm.nexttick來解決這一需求。一 vm.nexttick callback 二 vue.nexttick callback,con...