请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

疑惑对老师解答的nexttick

老师我看到你以前回答别人关于nexttck问题是这样说的就是
1:mounted是可以获取到dom的,但并未保证真正完成渲染到页面,所以依赖dom的宽度高度啥的必须延迟一个tick
2:一个tick大约17ms所以你会推荐用settimeout(fn,20)来执行
3:nexttick是相当于settimeout(fn,0)

那按照上面的理论来说 nexttick是肯定会有问题的啊 因为他设置为0就是说我还没有经过一个tick约17ms就去执行可能没渲染完成,
那么问题来了为什么官方还推荐用nexttick呢难道没有问题? 麻烦老师帮我解决下疑惑

正在回答 回答被采纳积分+3

2回答

ustbhuangyi 2017-10-09 23:33:30

setTimeout(fn, 0) 也并不是 0 ms 后执行,也是需要一个 tick 的时间才会执行。
另外 Vue 的 nextTick 并不是 settimeout(fn,0),通常会更早一些,只有比较老的浏览器才会降级为 settimeout(fn,0),感兴趣可以看看源码。

0 回复 有任何疑惑可以回复我~
  • 是不是因为nextTick在老的浏览器中会自动降级,所以才使用setTimeout代替?不明白为什么不使用nextTick
    回复 有任何疑惑可以回复我~ 2018-06-22 11:39:45
提问者 幕布斯9323460 2017-10-09 13:34:07

是不是nexttick是可以拿到dom的但是如果是牵涉到dom宽度高度的话就有可能没有渲染完成就可能出现问题了?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信