$nextTick 的理解

<template>
  <div> 
    <div ref="msg">{{ message }}</div>
    <div>{{ message1 }}</div>
    <button @click="changeMessage">改变message</button>
  </div>
</template>

<script> 
export default {
  name: "HomeView", 
  data() {
    return {
      message: "你好世界",
      message1: "",
    };
  },
  created() { 
      // this.$nextTick(() => {
      //  ……
      // });
  }, 

  // vue中$nextTick
  // $nextTick 是将回调函数延迟在下一次dom更新数据之后调用
  // vue是异步渲染的框架,数据更新之后,dom是不会立刻渲染

  // 使用场景:
  // 1、在生命周期created中进行dom操作,一定要放到$nextTick函数中进行
  // 2、在数据变化后要执行某个操作,而这个操作需要使用随数据变化而变化的dom结构时,这个操作需要发给到$nextTick中进行
  methods: {
    changeMessage() {
      this.message = "hello world";

      // setTimeout(() => {
      // this.message1 = this.$refs.msg.innerHTML
      // }, 200);
      
      // this.$nextTick(() => {
      //   this.message1 = this.$refs.msg.innerHTML;
      // });
    },
  },
};
</script>
posted @ 2022-09-13 00:20  王二疯  阅读(45)  评论(0编辑  收藏  举报