# mounted 时元素不全问题

有一点需要注意,在 Vue 2.0 中,mounted 钩子触发时并不保证元素已经被添加到 DOM 上。如果想要保证元素已经被添加,可以调用 Vue.nextTick() 方法(也可以通过 this.$nextTick() 调用)并传入一个回调函数,在回调函数中添加需要在元素被添加到 DOM 之后运行的代码。

<div id="app" v-cloak>
  <h3 ref="test" @click="clickHandler()">hello world</h3>
</div>
<!-- <script src="https://unpkg.com/vue"></script> -->
<script src="https://unpkg.zhimg.com/vue"></script>
<script>
  const vm = new Vue({
    el: '#app',
    mounted() {
      // 此时,不保证元素一定添加到了 DOM 上。
      this.$nextTick(() => {
        // 此时元素一定被添加到了 DOM 上。
        console.info(this.$refs.test);
      });
    }

  });
</script>