疑惑对老师解答的nexttick
来源:2-1 需求分析
幕布斯9323460
2017-10-09
老师我看到你以前回答别人关于nexttck问题是这样说的就是
1:mounted是可以获取到dom的,但并未保证真正完成渲染到页面,所以依赖dom的宽度高度啥的必须延迟一个tick
2:一个tick大约17ms所以你会推荐用settimeout(fn,20)来执行
3:nexttick是相当于settimeout(fn,0)
那按照上面的理论来说 nexttick是肯定会有问题的啊 因为他设置为0就是说我还没有经过一个tick约17ms就去执行可能没渲染完成,
那么问题来了为什么官方还推荐用nexttick呢难道没有问题? 麻烦老师帮我解决下疑惑
写回答
2回答
-
ustbhuangyi
2017-10-09
setTimeout(fn, 0) 也并不是 0 ms 后执行,也是需要一个 tick 的时间才会执行。
另外 Vue 的 nextTick 并不是 settimeout(fn,0),通常会更早一些,只有比较老的浏览器才会降级为 settimeout(fn,0),感兴趣可以看看源码。012018-06-22 -
幕布斯9323460
提问者
2017-10-09
是不是nexttick是可以拿到dom的但是如果是牵涉到dom宽度高度的话就有可能没有渲染完成就可能出现问题了?
00
相似问题
疑惑对老师解答的nexttick
回答 1
关于dom执行的问题
回答 1