跳到主要内容

代码分割

代码分割可以将代码拆分成小的 chunks,然后按需加载,而非在用户使用前下载整个应用程序。

该项目设置支持通过 dynamic import() 进行代码分割。该提案处于第四阶段。与 import() 类似的函数形式将模块名称作为参数,并返回一个包含始终被解析为模块的命名空间对象的 Promise

以下是一个简单的示例:

moduleA.js

const moduleA = 'Hello';

export { moduleA };

App.js

import React, { Component } from 'react';

class App extends Component {
handleClick = () => {
import('./moduleA')
.then(({ moduleA }) => {
// Use moduleA
})
.catch(err => {
// Handle failure
});
};

render() {
return (
<div>
<button onClick={this.handleClick}>Load</button>
</div>
);
}
}

export default App;

这将使 moduleA.js 及其所有唯一依赖项成为单独的 chunk,仅在用户点击 '加载' 按钮后才会加载。有关创建的 chunk 的更多信息,请参见 生产环境构建 部分。

如果你喜欢的话,也可以将其与 async / await 语法一起使用。

使用 React Router

如果你使用的是 React Router,请查看 本教程

还可以查看 React 文档中的代码分割章节。