概念
將回調延遲到下次 DOM 更新循環之后執行。在修改數據之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一樣,不同的是回調的 this 自動綁定到調用它的實例上。類似代碼放在setTimeout(fn, 0)中執行。
應用場景
- 在Vue生命周期的
created()
鈎子函數進行的DOM操作一定要放在Vue.nextTick()
的回調函數中
在created()
鈎子函數執行的時候DOM 其實並未進行任何渲染,而此時進行DOM操作無異於徒勞,所以此處一定要將DOM操作的js代碼放進Vue.nextTick()
的回調函數中。與之對應的就是mounted()
鈎子函數,因為該鈎子函數執行時所有的DOM掛載和渲染都已完成,此時在該鈎子函數中進行任何DOM操作都不會有問題 。
- 在數據變化后要執行的某個操作,而這個操作需要使用隨數據改變而改變的DOM結構的時候,這個操作都應該放進
Vue.nextTick()
的回調函數中。
export default { mounted() { console.log(11) this.$nextTick(()=>{ console.log(22) }) console.log(33) } } //輸出結果 // 11 // 33 // 22