14

我的任务是让我们的 react redux web 应用程序中的页面加载得更快。

当加载页面的动作触发时,我们会得到大约 0.5 秒的小冻结。

我打开了探查器,乍一看似乎没有任何问题。
火焰图

没有不必要的重新渲染,唯一显示的黄色警告大约是 10 毫秒。

当我转到分析器中的排名选项卡时,我得到了一个稍微不同的故事,我发现大部分时间都花在了 withStyles() 中。
排名图

我们通过 withStyles() 在 JS 中使用 CSS 的 material-ui 方法,看起来 WithStyles() 的使用显着影响了加载速度。
是这样吗?或者这仅仅是“我一次渲染太多东西”的情况

将 JS 中的 CSS 转换为仅 CSS 将是一项重大的努力,尽管我确实花了一个小时将 JS 中的 CSS 剥离出来,发现性能提高了大约 40%,尽管我不知道这 40% 中有多少是由于 withStyles 与页面上样式元素的性能相比。

4

1 回答 1

10

在 WithStyles 中花费的 +90% 的时间实际上是在JSS中花费的,在 Material-UI 方面我们可以做的很少。

虽然,有一个可能的加速不包括重写你的 JS CSS 样式方法,这是切换到makeStyles而不是withStyles

可以在这里找到

于 2019-07-29T16:23:41.123 回答