https://developers.weixin.qq.com/miniprogram/dev/api/ui/custom-component/wx.nextTick.html
关于nextTick“下个时间片”是指逻辑层的“下个时间片”还是指等渲染层渲染完的“下个时间片”?
看小程序架构是分为逻辑层和渲染层,两个线程执行的,比如说一个方法里通过setData使页面需要大量时间渲染,这时候nextTick是会等页面渲染完再执行还是当当前函数执行完就执行(不考虑其他异步事件问题)
例如:
foo(){
setData({
...
}) // 修改数据导致页面开始大量渲染
wx.nextTick(()=>console.log('nextTick')) // 这个nextTick是在页面渲染完前执行还是渲染完成后执行?
}
你在 setData完成回调里测试一下就知道了
逻辑层的下一个时间片,基本等于 setTimeout 0。
setData 的回调函数会经历更多的步骤(发送更新任务到视图层、视图层完成数据与视图的更新、视图层通知逻辑层已完成)后才会触发。
如果单次设置的数据量比较多,引发的视图层更替任务“较多”,那么 setData 中的回调函数触发会明显晚于 nextTick 的触发。
确实说的太简单了,能不能具体点