Vue里的nextTick方法

官方解释:

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

自己总结:

`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。
`Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。

实例:

<template>
    <div>
        <div class="app">
          <div ref="msgDiv">{{msg}}</div>
          <div v-if="msg1">Message got outside $nextTick: {{msg1}}</div>
          <div v-if="msg2">Message got inside $nextTick: {{msg2}}</div>
          <div v-if="msg3">Message got outside $nextTick: {{msg3}}</div>
          <button @click="changeMsg">
            Change the Message
          </button>
        </div>
    </div>
</template>

<script>
export default {
  data() {
    return {
      msg: "Hello Vue.",
      msg1: "",
      msg2: "",
      msg3: ""
    };
  },
  methods: {
    changeMsg() {
      this.msg = "Hello world.";
      this.msg1 = this.$refs.msgDiv.innerHTML;
      this.$nextTick(() => {
        this.msg2 = this.$refs.msgDiv.innerHTML;
      });
      this.msg3 = this.$refs.msgDiv.innerHTML;
    }
  }
};
</script>

  

参考博客:

https://blog.csdn.net/sinat_17775997/article/details/71638144(理解 $nextTick 的作用

猜你喜欢

转载自www.cnblogs.com/DZzzz/p/9287027.html