nextTick()
将回调推迟到下一个 DOM 更新周期之后执行。在更改了一些数据以等待 DOM 更新后立即使用它。
类型
function nextTick(callback?:()=>void): Promise<void>
细节
当你在 Vue 中改变响应状态时,生成的 DOM 更新不会同步应用。相反,Vue 会缓冲它们直到“下一个更新”,以确保每个组件只更新一次,无论您进行了多少状态更改。
nextTick()
可以在状态更改后,立即使用,以等待 DOM 更新完成。您可以将回调作为参数传递,也可以等待返回的Promise。
例子
<script> import { nextTick } from 'vue' export default { data() { return { count: 0 } }, methods: { async increment() { this.count++ // DOM not yet updated console.log(document.getElementById('counter').textContent) // 0await nextTick() // DOM is now updated console.log(document.getElementById('counter').textContent) // 1 } } } </script> <template> <button id="counter" @click="increment">{{ count }}</button> </template>