$nextTick使用

简介: $nextTick使用

什么时候使用$nextTick

Vue⽣命周期的created()钩⼦函数进⾏的DOM操作⼀定要放在Vue.nextTick()的回调函数中,原因是在created()钩⼦函数执⾏的时候,DOM 其实并未进⾏任何渲染,⽽此时进⾏DOM操作⽆异于徒劳,所以此处⼀定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。

2、当项⽬中改变data函数的数据,想基于新的dom做点什么,对新DOM⼀系列的js操作都需要放进Vue.nextTick()的回调函数中

$nextTick()执行原理

Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个任务队列,并缓冲在同一时间循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列中一次。(这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的)

然后,在下一个的事件循环“tick”中,Vue 刷新队列并执行任务队列 (已去重的) 工作。

Vue 在内部对异步队列尝试使用原生的 Promise.then(微任务)、MutationObserver 和 setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0)(宏任务)代替。


相关文章
|
6天前
|
JavaScript 前端开发
深入了解 Vue中$nextTick
$nextTick`是 Vue 框架中的一个函数,用于在 DOM 更新完成后执行回调函数。它的主要作用是`解决在 Vue 中修改数据后,DOM 不会立即更新的问题
|
8月前
|
JavaScript 前端开发
vue中nextTick()的理解及使用
vue中nextTick()的理解及使用
|
10月前
|
JavaScript
Vue中 使用定时器 (setInterval、setTimeout)
Vue中 使用定时器 (setInterval、setTimeout)
130 0
|
6天前
|
JavaScript API
在使用$nextTick方法时,需要注意哪些问题?
在使用$nextTick方法时,需要注意哪些问题?
18 0
|
6天前
|
JavaScript 调度
setTimeout和setImmediate以及process.nextTick的区别?
setTimeout和setImmediate以及process.nextTick的区别?
53 0
|
9月前
|
JavaScript 前端开发
vue中的$nextTick?
vue中的$nextTick?
41 0
|
9月前
|
JavaScript
|
JavaScript 前端开发
vue3 nextTick()应用
在Vue3中,可以使用nextTick函数来延迟执行某些操作,这些操作会在下一次DOM更新周期之后执行。这个函数通常用于在数据更新后,等待DOM更新之后执行一些操作,比如获取DOM元素的尺寸、位置等。
|
JavaScript 前端开发 API
实现 nextTick
利用微任务与宏任务,派发延时任务。Vue 中 nextTick 的原理。实现 nextTick。