官方文档是这样介绍的:
this.$nextTick
将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。this.$nextTick
跟全局方法vue.nextTick
一样,不同的是,回调的 this 自动绑定到调用它的实例上。总的来说,假设我们更改了某个 dom 元素内部的文本,而这时候我们想直接打印这个更改之后的文本是需要 dom 更新之后才会实现的,就像我们把将要打印输出的代码放在
setTimeout(fn, 0)
中
但是使用this.$nextTick()
则可以顺利获取这个dom元素改变后的状态及数据;
methods:{
testClick() {
this.content = '改变了的值'
this.$nextTick(() => {
// dom元素更新后执行,因此这里能正确打印更改之后的值
console.log(this.$refs.tar.innerText) // 改变了的值
})
}
}