vue中的this.$nextTick()使用

首先我们来翻译一下nextTick是什么意思:下一个刻度

再来看看vue官网怎么说的:

Vue.nextTick( [callback, context] )
在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

大概意思就是在修改完数据后会立即调用这个方法

下面看下具体代码↓

<template>
    <div>
        <div ref="test">{{text}}</div>
        <button type="button" name="button" @click="dClick">改变我</button>
    </div>
</template>
 
<script>
    export default {
        data () {
            return {
                text: '原始的我'
            }
        }
     methods: {
       dClick(){
              this.text = '我变了'
                   this.$nextTick(() => {
                      // dom元素更新后执行,因此这里能正确打印更改之后的值
                      console.log(that.$refs.test.innerText) // 我变了
                  })
             // 这时候由于dom元素还没更新,因此打印出来的还是未改变之前的值
             console.log(that.$refs.test.innerText) // 原始的我
       }
     }
    }
</script>
原文地址:https://www.cnblogs.com/bobo1/p/11868101.html