Vue 更新DOM是异步执行的,修改数据后,视图不会立即更新,会等同一事件循环中的所有数据都变化后再统一更新视图,如果想修改数据 立即就能对修改后的视图进行操作 可以使用$nextTick

使用场景:

        操作DOM元素:数据变化后,立即对修改后的DOM元素进行操作

        获取最新DOM状态:在数据变化后,可使用$nextTick能确认DOM已经更新,然后再进行相关操作

        执行延迟操作:所有的DOM更新 和 计算完成后,再进行一些操作,可以用$nextTick

<template>

  <div>

    <button @click="updateData">Update Data</button>

    <div ref="myDiv">{{someData}}</div>

  </div>

</template>

<script>

export default {

  data () {

    return {

      someData: 'some text'

    }

  },

  methods: {   

    updateData () {

      // 更新数据

      this.someData = 'new data'

      // 等待 DOM 更新完成后执行操作

      this.$nextTick(() => {

        console.log('DOM has been updated')

   

        this.$refs.myDiv.textContent = 'Updated text'

      })

    }

  }

}

</script>

点击【Update Data]按钮:

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部