vue实现响应式并不是数据发生变化之后,立即重新渲染DOM,而是按照一定的策略进行DOM的更新
this.$nextTick() 在页面DOM元素循环更新会进行延迟回调,可以获取到更新之后的最新数据
例:
<div ref="info"> {{msg}}</div>
data:{
msg:"hello world"
},
methods:{
updateMsg(){
this.msg="你好呀"
console.log(this.nextTick(()=>{
console.log(this.$refs.info.innerText) //'你好呀'
})
}
},
mounted(){
this.updateMsg()
}
// 作用大概类似于 setTimeout(fn,0)