vue-15nextTick的使⽤和原理

102 阅读1分钟
    1. nextTick是⽤于获取下次DOM更新刷新的使⽤函数。
    1. Vue有个异步更新策略,意思是如果数据变化,Vue不会⽴刻更新DOM,⽽是开启⼀个队列,把组件更新函 数保存在队列中,在同⼀事件循环中发⽣的所有数据变更会异步的批量更新。这⼀策略导致我们对数据的修 改不会⽴刻体现在DOM上,此时如果想要获取更新后的DOM状态,就需要使⽤nextTick。
    1. 开发时,⽐如我希望获取列表更新后的⾼度就可以通过nextTick实现。
    1. nextTick签名如下: function nextTick(callback?: () => void): Promise 所以我们只需要在传⼊的回调函数中访问最新DOM状态即可,或者我们可以await nextTick⽅法返回的 Promise之后做这件事。
    1. 在Vue内部,nextTick之所以能够让我们看到DOM更新后的结果,是因为我们传⼊的callback会被添加到队列 刷新函数(flushSchedulerQueue)的后⾯,这样等队列内部的更新函数都执⾏之后,所有DOM操作也就结束 了,callback⾃然能够获取到最新的DOM值。