前言,vue执行dom的更新是异步的
this.$nextTick 在数据更新时,dom渲染完后,执行callback
<p ref='ref_p'>{{msg}}</p>
<button @click='msgFn/>
data:{
msg:'我是旧的消息'
}
msgFn(){
this.msg = '我是新的消息'
console.log(this.$refs['ref_p'].innerHtml) //我是旧的消息 因为vue执行dom的更新是异步的,他会放在一个时间循环,避免在一个时间段重复更新,只更新到最后一次,若想用最新的,用this.$nextTick
this.msg = '又是新的消息'
console.log(this.$refs['ref_p'].innerHtml)
}
msgFn(){
this.msg = '我是新消息'
this.$nextTick(()=>{
console.log(this.$refs['ref_p'].innerHtml) //我是新消息
}
}