vue中this.$nextTick()的用法

this.$nextTick 将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。

this.$nextTick 跟全局方法 vue.nextTick 一样,不同的是,回调的 this 自动绑定到调用它的实例上。

总的来说,假设我们更改了某个 dom 元素内部的文本,而这时候我们想直接打印这个更改之后的文本是需要 dom 更新之后才会实现的,就像我们把将要打印输出的代码放在 setTimeout(fn, 0) 中

获得修改dom后的结果,就是修改的同时获得修改后的结果。

具体demo如下

<template>
 <div>
   <button ref='tar'
     type="button"
     name="button"
     @click="testClick"
   >{
   
   {content}}</button>
 </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      content: '初始值'
    }
  },
  methods: {
    testClick () {
      this.content = '改变了'
      console.log(this.$refs.tar.innerHTML);  // 初始值
      // let self=this;  // 用了箭头函数,不用赋值
      this.$nextTick(() => {
        console.log(self.$refs.tar.innerHTML);  // 改变了
      })
    },
  }
}
</script>

<style scoped>
</style>


reference:

https://blog.csdn.net/a654540233/article/details/107245152/

おすすめ

転載: blog.csdn.net/qq_27009517/article/details/120408921