Vue data 中某一个属性的值发生改变后,视图会立即同步执行重新渲染吗

不会立即同步执行重新渲染。

Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。

Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化, Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。

如果同一个watcher被多次触发,只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。

然后,在下一个的事件循环”tick”中,Vue 刷新队列并执行实际(已去重的)工作。

发表评论

后才能评论