学习Vue的过程中,大家肯定都使用过nextTick(),关于nextTick()的使用时机,大家肯定都知道,那么它的工作原理是怎样的呢,本文就简单说一下它的nextTick()的工作原理。
nextTick内部其实就是根据这种机制来运行的。我们都知道nextTick是让浏览器在页面渲染后在执行其中的回调。那这是为什么呢?
还记得我上一篇文章讲的Vue官网里说“Vue在更新Dom时是异步执行的”,说明vue去渲染页面也是通过一个异步任务,那么它也会被推入一个异步任务队列里面,而nextTick内部就是把自己写那个回调也做成一个异步任务(微任务或宏任务),然后把他放在vue更新dom这个异步任务后面,通常是放在一个事件循环的最后执行,所以nextTick就具有了在更新dom后操作页面的能力。
nextTick的使用时机
首先记住:nextTick所指定的回调会在浏览器更新DOM完毕之后再执行。
举个例子:
在我自己做的一个单页面应用中,我有一个需求,当从后端请求回数据后,马上就对页面进行更新。比如,我要点击操作里的删除操作,前端删除数据后就向后端发请求,后端删除数据后返回数据,如果我们想马上显示到页面上,应该怎么做呢?
可能好多人会像我第一次做那样,比如我这个页面是用 v-for 遍历data这个数据显示出来的,可能好多人就会直接把前端返回的数据直接重新赋值给data。但是这样是绝对不行的!这样只会导致数据其实是变了,但是视图是不会变的,因为vue更新dom是异步的,无法通过同步代码赋值后马上去更新页面。所以即使删除成功了页面也不会显示出来。即使显示删除成功,页面也不会更新。
通过以上内容我们知道了vue 中nextTick的正确使用方法。感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!