react教程,如何利用performance记录代码的运行时间?
发布于 作者:苏南大叔 来源:程序如此灵动~

在react
代码中,偶尔会有记录代码运行时间的需求。通常思路上来说,就是先记录一个开始时间,然后再记录一个结束时间,然后两者做差值。但是,在node
里面,有个原生的performance.now()
,直接输出就是这个差值,比较的好用。

苏南大叔的程序如此灵动,记录苏南大叔和计算机代码的故事。测试环境:create-react-app@5.0.1
,react@18.2.0
,react-dom@18.2.0
,node@16.14.2
。performance.now()
放在普通的js
代码里面也可以,只不过本文中用于react
项目。
测试代码
测试代码如下:
顺便回顾一下useLayoutEffect
的用法:
这个匿名函数来自这里:

虽然名字是.now()
,但是输出的并不是时间戳,而是个时间戳的差值。
代码解说
本文的测试例子,诸多意料之外的运行结果,非常适合拿来做面试题。
1、本文的useLayoutEffect
例子,虽然也发生了文字闪动的问题。但是,这个闪动是由async
这个异步函数引起的。而不是useLayoutEffect
这个同步函数引起的,这不是它的效果。
2、async
是个异步,要等待里面的await
的结果返回。
3、fetch
函数是个模拟的可控的延时函数。
4、performance.now()
输出的并不是当前时间戳。
5、分号的问题,被webpack
处理过之后,会出现意外的报错,非常意外。
结束语
react
经验文字,请点击:


