vue3 官方文档中对 DOM 更新时机 的解释是
当你更改响应式状态后,DOM 也会自动更新。然而,你得注意 DOM 的更新并不是同步的。相反,Vue 将缓冲它们直到更新周期的 “下个时机” 以确保无论你进行了多少次声明更改,每个组件都只需要更新一次。
你可能会疑惑什么是 下个时机 其实就是异步dom更新队列 (vue2官方文档) 用代码解释
<my-component v-if="isShow"></my-component>
data(){
return {
isShow: true
}
mounted() {
//此时dom已挂载, 更新数据将会触发dom更新(双向数据绑定)
this.isShow = false; //不触发更新
this.isShow = true; //如果是isShow的最终确定状态, 将会以 isShow = true
//进行数据驱动的更新, 因为一开始isShow = true, 新旧dom对比其实并不会触发dom更新
//也就是不会触发updated()生命周期钩子
}
}