$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)(宏任务)代替。


相关文章
|
7月前
|
JavaScript 前端开发
深入了解 Vue中$nextTick
$nextTick`是 Vue 框架中的一个函数,用于在 DOM 更新完成后执行回调函数。它的主要作用是`解决在 Vue 中修改数据后,DOM 不会立即更新的问题
|
JavaScript 前端开发
vue中nextTick()的理解及使用
vue中nextTick()的理解及使用
|
2月前
|
存储 前端开发 JavaScript
useRef 钩子使用技巧
【10月更文挑战第12天】本文详细介绍了 React 中的 `useRef` Hook,包括其基础概念、基本用法、常见问题与易错点以及如何避免这些问题。通过具体代码示例,解释了 `useRef` 的应用场景,如保存对 DOM 元素的引用、保存回调函数和定时器 ID 等,帮助开发者更有效地使用这一工具。
117 14
|
JavaScript
Vue中 使用定时器 (setInterval、setTimeout)
Vue中 使用定时器 (setInterval、setTimeout)
197 0
|
7月前
|
JavaScript API
在使用$nextTick方法时,需要注意哪些问题?
在使用$nextTick方法时,需要注意哪些问题?
49 0
|
JavaScript 前端开发
vue3 nextTick()应用
在Vue3中,可以使用nextTick函数来延迟执行某些操作,这些操作会在下一次DOM更新周期之后执行。这个函数通常用于在数据更新后,等待DOM更新之后执行一些操作,比如获取DOM元素的尺寸、位置等。
|
JavaScript 前端开发
vue中的$nextTick?
vue中的$nextTick?
63 0
|
前端开发
ReactHook—— useEffect
ReactHook—— useEffect
ReactHook—— useEffect