vue在观察到数据变化时并不是直接更新Dom,而是开启一个队列,并缓冲在同一事件循环中发生的所有数据改变。在缓冲中会去除重复数据,从而避免不必要的计算和dom操作。
然后,在下一个事件循环tick中,vue刷新队列并执行实际(已去重的)工作。所以如果你用一个for循环来动态改变数据100次,其实它只会应用最后一次改变,如果没有这种机制,dom就要重绘100次。
实际上在执行this.show=true时,div还没有被创建出来,知道下一个vue事件循环时,才开始创建。
$nextTick就是用来知道什么时候dom更新完成的。
get函数执行时报错内容。
网友评论