記vue nextTick用到的地方
阿新 • • 發佈:2019-05-04
結束 cab 周期 shu tps 全局函數 dial 圖表 fun
nextTick是vue提供的全局函數,在下次 DOM 更新循環結束之後執行延遲回調。在修改數據之後立即使用這個方法,獲取更新後的 DOM。
// 修改數據
vm.msg = 'Hello'
// DOM 還沒有更新
Vue.nextTick(function () {
// DOM 更新了
})
// 作為一個 Promise 使用 (2.1.0 起新增,詳見接下來的提示)
Vue.nextTick()
.then(function () {
// DOM 更新了
})
在實際的vue+element項目中與echart,antv G6等圖形庫結合使用的時候,在以下情況可能出現異常
- 使用element 的dialog,並且把echart圖標放置在dialog中,第一次打開dialog時,echart圖形沒渲染,再次打開才會渲染
- 將G6作為一個組件,並且在watch鉤子函數中監視圖表數據的變動時,watch會報找不到attribute,其實就是dom還沒渲染好
以上問題都可以通過nextTick解決,完畢。
加幾個寫的不錯的鏈接
- Vue生命周期與Vue.nextTick()使用
- 簡單理解Vue中的nextTick
記vue nextTick用到的地方