vuejs 异步渲染问题

Vue 异步执行 DOM 更新。只要观察到数据变化,Vue 将开启一个队列,改变缓冲在同一事件循环中发生的所有数据。如果同一个 watcher 被多次触发,只会一次推入到队列中。这个思想类似于 react, 用来减少 重绘性能消耗,譬如 :

<div v-if="data">
  <com ref="com"></com>
</div>

data 最初为null,那么当我们在一个method 中调用

this.data ={};
console.log(this.$refs.com)

时因为 vue 异步更新dom 的关系,data 并没有马上生效到dom 的渲染上,com 组件未完成渲染,所以 this.$refs.com 会为 undefined,此时需要使用 this.$nextTick 解决问题

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注