React.lazy 隐藏的 300 毫秒启动延迟

React.lazy, Suspense and the Hidden 300 ms Delay

React.lazy 隐藏的 300 毫秒启动延迟

我们开发 Tab Widgets 时遇到了一个奇怪的启动延迟:代码加载仅需 100 毫秒,但组件却要等到 380 毫秒才显示。排查发现,问题不在包体积,而是 React 的机制。React.lazy 组件首次渲染必会触发 Suspense,而 React 为了减少闪烁,强制将已就绪的内容延迟 300 毫秒才统一渲染。我们尝试了预加载,但最终决定绕过 Suspense 机制,让组件在代码就绪时立即渲染。这一改动让首屏内容提前了 240 毫秒,证明了在特定场景下,放弃框架的默认优化策略反而能带来更极致的性能。

缩小主包体积并没有带来任何可测量的差异,真正拖慢速度的是 React 故意在等待。

同日更多故事

2026-10-29