vue中$nextTick()做用

 

vue更新數據是異步的html

1.0 中確實是經過 v-el:xxx 標記 dom 而後在組件裏經過 this.$els.xxx 就能夠得到這個 dom 對象了vue

$nextTick(() => {}) 與DOM相關操做寫在該函數回調中,確保DOM已渲染dom

 

什麼是Vue.nextTick()異步

官方文檔解釋以下:函數

在下次 DOM 更新循環結束以後執行延遲迴調。在修改數據以後當即使用這個方法,獲取更新後的 DOM。post

因此就衍生出了這個獲取更新後的DOM的Vue方法。因此放在Vue.nextTick()回調函數中的執行的應該是會對DOM進行操做的 js代碼,ui

 

何時須要用的Vue.nextTick()this

你在Vue生命週期的created()鉤子函數進行的DOM操做必定要放在Vue.nextTick()的回調函數中。緣由是什麼呢,緣由是在created()鉤子函數執行的時候DOM 其實並未進行任何渲染,而此時進行DOM操做無異於徒勞,因此此處必定要將DOM操做的js代碼放進Vue.nextTick()的回調函數中。與之對應的就是mounted鉤子函數,由於該鉤子函數執行時全部的DOM掛載已完成。使用時機:el 被新建立的 vm.$el 替換,並掛載到實例上去以後調用該鉤子函數,此時頁面並未所有渲染。.net

在某個動做有可能改變DOM元素結構的時候,對DOM一系列的js操做都要放進Vue.nextTick()的回調函數中code

 

轉載於:https://blog.csdn.net/shuidinaozhongyan/article/details/72630573

相關文章
相關標籤/搜索