記vue nextTick用到的地方

nextTick是vue提供的全局函數,在下次 DOM 更新循環結束以後執行延遲迴調。在修改數據以後當即使用這個方法,獲取更新後的 DOM。vue

// 修改數據
vm.msg = 'Hello'
// DOM 尚未更新
Vue.nextTick(function () {
  // DOM 更新了
})

// 做爲一個 Promise 使用 (2.1.0 起新增,詳見接下來的提示)
Vue.nextTick()
  .then(function () {
    // DOM 更新了
  })

在實際的vue+element項目中與echart,antv G6等圖形庫結合使用的時候,在如下狀況可能出現異常dom

  1. 使用element 的dialog,而且把echart圖標放置在dialog中,第一次打開dialog時,echart圖形沒渲染,再次打開纔會渲染
  2. 將G6做爲一個組件,而且在watch鉤子函數中監視圖表數據的變更時,watch會報找不到attribute,其實就是dom還沒渲染好

以上問題均可以經過nextTick解決,完畢。
加幾個寫的不錯的連接函數

相關文章
相關標籤/搜索