Rspack 支持代码分割特性,允许让你对代码进行分割,控制生成的资源体积和资源数量来获取资源加载性能的提升。
通常,我们使用静态 import 来导入组件:
如果要将“加载组件代码”延迟至该组件被渲染时,可以将此 import 替换为:
此代码依赖于动态 import()。使用此模式要求导入的懒加载组件必须作为默认导出(Default Export)进行导出。
现在,由于你的组件代码按需加载,你还需要指定在加载期间应显示的内容。你可以通过将懒加载组件或其任何父组件包装在 <Suspense> 边界中来实现这一点:
在此示例中,LazyComponent 的代码在尝试渲染它之前不会被加载。如果 LazyComponent 尚未加载,则会在其位置显示“Loading...”。例如:
如果加载完成,懒加载组件本质上也是一个 React 组件,因此 React 中的错误处理实践仍然适用。
细节请参考 React - Catching rendering errors with an error boundary
你还可以延迟加载在独立的 Rspeedy 项目中构建的模块。