vue记录---nextTick的使用

五、nextTick的使用

\color{red}{在数据更新结束,dom更新完成之后执行的回调。}其内执行的函数可获得dom节点。

<!--src/components/Test/NextTickTest.vue-->
<template>
  <div>
    <ul ref="refElement">
      <li v-for="(item, index) in list" :key="index">{{ item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "NextTickTest",
  data() {
    return {
      list: [],
    };
  },
  mounted() {
    setTimeout(() => {
      this.list = ["吃饭", "睡觉", "打豆豆"];
    }, 2000);
    console.log(this.$refs.refElement); // 获取不到li节点

    // list未更新,此时nextTick的回调,不可以获取到dom节点
    this.$nextTick(() => {
      console.log(this.$refs.refElement); // 获取不到li节点
    });
  },
  watch: {
    list(newValue, oldValue) {
      // list已经更新完毕,此时nextTick的回调即可获取到dom节点
      this.$nextTick(() => {
        console.log(this.$refs.refElement); // 可以获取li节点
      });
    },
  },
};
</script>

<style lang="scss" scoped>
</style>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容