vm.$nextTick()接收一个回调函数作为参数,它的作用是将回调延迟到下次DOM更新周期之后执行。在开发中会遇到一种场景:当更新了状态时,需要对新DOM做一些操作,但此时我们还获取不到更新后的DOM,因为视图还未重新渲染。将对新DOM的操作放在nextTick()的回调函数中,就可以实现视图更新后对新DOM操作。
这里主要是因为vue使用了异步更新队列。当同一轮事件循环中有两个数据发生了改变,Watcher会收到两份通知,从而进行两次渲染。而Vue会将收到通知的Watcher实例添加到队列中,然后在下一次事件循环中,让所有Watcher触发渲染流程,最终只执行一次渲染。