大家好,我卡颂。对于长期迭代的React项目,性能是不能忽视的问题。通常我们通过:React-Dev-Tools的Profiler面板一些第三方工具,比如why-did-you-render检测运行时性能瓶颈。实际上,React本身就内置了性能检测组件 ——Profiler,可以很方便的检测React项目的性能。欢迎加入人类高质量前端交流群,带飞使用方式Profiler是个内置组件,用他包裹需要检测性能的组件即可:嵌套使用也是可以的:Profiler会检测被他包裹的组件树的性能,检测结果会作为onRender回调的参数:function onRender(
id,
phase,
actualDuration, baseDuration,
startTime, commitTime
) {
// ...回调
}那么,这些参数都是什么意思呢?其实我们完全没必要记这些。我们只需要知道,一些典型的性能优化场景该使用哪些参数就行。场景1:组件是不是嵌套更新?对于一般的组件更新,会经历4个步骤:组件触发更新计算更新的影响执行DOM操作视图更新但如果在上一次更新流程的4个步骤还未走完的情况下,又触发新的更新:可以发现,在这种情况下,视图更新的时机远滞后于一般更新流程,这会造成页面交互卡顿。这就是组件嵌套更新,通常我们在useLayoutEffect中触发新的更新会遇到这
...
继续阅读
(62)