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

来源:4-4 轮播图组件实现(上)

我仍旧在这里

2017-11-22

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

写回答

1回答

ustbhuangyi

2017-11-22

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

1
2
ustbhuangyi
回复
我仍旧在这里
Vue 其实挺好的,但是值得商榷的是有点激进了,版本升级经常会有一些比较大的 break change,所以线上一般我们都是锁死 Vue 某个版本的,它最新对于 nextTick 的改动也是为了修复某个 issue,但它也测试不到 audio 播放的情况,所以导致我们这边被坑了,现在修复都是一些比较 hack 的搞法,所以我决定还是去提个 issue。
2017-11-23
共2条回复

Vue2.0高级应用教学实战,开发企业级移动端音乐Web App

Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。

5432 学习 · 3804 问题

查看课程