请稍等 ...
×

采纳答案成功!

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

关于setTimeout和nextTick的使用选择问题

还有一个关于在mounted中使用setTimeout的问题,并不是错误,并且作者也提到可以用vue提供的nextTick来做。但是我觉得用nextTick好些,毕竟提供了promise, mutationObserver, 和setTimeout三种解决方案,相对于setTimeout重启一个macroTask,前两者做为microTask应该性能上会好些。我觉得这也是Vue框架的一个重点,希望作者在说这个问题的时候不要简单的跳过去。

正在回答

1回答

ustbhuangyi 2017-11-22 23:36:52

nextTick 我正要吐槽,已经被尤大改的我要去提 issue 了,你可以看看 2.5 版本 nextTick 的实现,导致为了它这个坑做了很多 hack 修复在手机中播放的代码,你去我们的源码看看最近的几次 commit 就知道。
nextTick 这个从 Vue 出来以后不知道改过多少版,现在已经没有 mutationObserver,这块的实现我最近也研究了很多,用不用也是需要看场景的。

1 回复 有任何疑惑可以回复我~
  • 提问者 我仍旧在这里 #1
    最新版本的确还没看过。不过,感觉vue的更新机制相比react更依赖语言环境,react的异步更新我觉得可以借鉴一下,但是我还是个菜鸟实在也提不出什么建设性的方案,大神有什么建设性的想法可以大家分享一下。很感谢你的回答
    回复 有任何疑惑可以回复我~ 2017-11-23 00:03:47
  • ustbhuangyi 回复 提问者 我仍旧在这里 #2
    Vue 其实挺好的,但是值得商榷的是有点激进了,版本升级经常会有一些比较大的 break change,所以线上一般我们都是锁死 Vue 某个版本的,它最新对于 nextTick 的改动也是为了修复某个 issue,但它也测试不到 audio 播放的情况,所以导致我们这边被坑了,现在修复都是一些比较 hack 的搞法,所以我决定还是去提个 issue。
    回复 有任何疑惑可以回复我~ 2017-11-23 00:07:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信