浅谈Vue中的NextTick。

发布时间:2024年01月12日

一、NextTick()

????????等待下一次 DOM 更新刷新的工具方法。

????????当你在 Vue 中更改响应式状态时,最终的 DOM 更新并不是同步生效的,而是由 Vue 将它们缓存在一个队列中,直到下一个“tick”才一起执行。这样是为了确保每个组件无论发生多少状态改变,都仅执行一次更新。nextTick()?可以在状态改变后立即使用,以等待 DOM 更新完成。你可以传递一个回调函数作为参数,或者 await 返回的 Promise。(节省性能,如果每次更新都直接触发dom更新,消耗性能,vue本身就是创建虚拟dom也就是JS对象来节省开销,批量执行dom,可以避免不需要的DOM更新)

二、实例

<script setup>
import { ref, nextTick } from 'vue'

const count = ref(0)

async function increment() {
  count.value++

  // DOM 还未更新
  console.log(document.getElementById('counter').textContent) // 0

  await nextTick()
  // DOM 此时已经更新
  console.log(document.getElementById('counter').textContent) // 1
}
</script>

<template>
  <button id="counter" @click="increment">{{ count }}</button>
</template>

文章来源:https://blog.csdn.net/weixin_45345234/article/details/135550355
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。