在vue中操作DOM--this.$nextTick()

  最近在vue项目中有一个需求,当我打开弹框后需要调取一个方法,该方法里面需要获取弹框里面的div; 我直接是打开弹框就调取该方法,然而控制台一直报找不到该元素,后来想可能是此时我方法触发了,但是vue还没有更新, 后来使用this.$nextTick() 将方法放在这个回调里面,就解决了这个问题;

this.$nextTick()

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

 

注意this.nextTick()

this.nextTick(callback),当数据发生变化,更新后执行回调。
this.$nextTick(callback),当dom发生变化,更新后执行的回调

 

posted @ 2018-12-12 19:59  水樱织  阅读(611)  评论(0编辑  收藏  举报