vue中 nextTick 能做些什么?

   nextTick 将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。

   在 created 环节 ref 和 dom 并没有被渲染,但是写在 nextTick 内获取到了 dom。也就是说 nextTick 的回调在 moutend 执行后 dom 挂载完毕才跟着执行。

<template>
  <div id="app">
    <HelloWorld ref="holllowWord" msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'app',
  components: { HelloWorld },
  created() {
    console.log(this.$refs.holllowWord) // underfind
    this.$nextTick(()=>{
      console.log(this.$refs.holllowWord) // 获得了 holllowWord 实例信息
    })
  },
}
</script>

在 moutend 内有时候执行一些操作 dom 的方法发现获取不到 dom,解决方案是使用 nextTick ,还不行的话就 nextTick + setTimeout

 mounted() {
     this.$nextTick(()=>{
       setTimeout(()=>{
         // ....
       })
    })
  },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。