react antd框架如何判断当前组件的渲染进度?

#1

初入antd,发现或 组件是否显示,其实都是根据传入的值来控制,但是传入的值最终还是得自己给,那么该如何判断react组件的渲染进度呢?

#2

渲染进度?
敢问阁下需要渲染进度来干嘛。

#3

因为像antd的 <Skeleton loading={ a } />骨架屏,是通过控制loading的boolean值来显示隐藏的。那我不是得知道组件渲染完了,才能传值给loading么?

#4

既然是骨架屏,你只需要在异步数据加载完了,直接结束loading就行,渲染文本的时间几乎可以忽略不记。

#5

我理解你的意思,react自己也是打着渲染速度快。但是如何监听dom的渲染进度,或者react的组件渲染进度,这个可以做到么(我想了想,好像js也没有提供类似的api)?不知道阁下有没有什么方法可以监听组件的渲染。

#6

如果你实在需要监听的化,你可以去看下生命周期,有一个钩子,是在当前组件渲染完成才会执行

#7

setState有第二个参数,是一个回调函数,你大概需要的就是这个?

#8

js单线程的,渲染期间线程被占用, 获取不到进度的,而且渲染时间是毫秒级别的,用户根本感受不到,就算因为Fiber存在获得的可能性,因为正在渲染期间,你也无法将获取到的进度渲染到页面上给用户看。
进度这个东西主要是给网络IO用的,这个才是用户能够感受得到的等待时间。

1 Like
#9

嗯,钩子确实好用,谢谢