最近在vue项目中有一个需求,当我打开弹框后需要调取一个方法,该方法里面需要获取弹框里面的div; 我直接是打开弹框就调取该方法,然而控制台一直报找不到该元素,后来想可能是此时我方法触发了,但是vue还没有更新, 后来使用this.$nextTick() 将方法放在这个回调里面,就解决了这个问题;
this.$nextTick()
官方解释:将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。
注意this.nextTick()
this.nextTick(callback),当数据发生变化,更新后执行回调。 this.$nextTick(callback),当dom发生变化,更新后执行的回调