---
url: /in-depth/manual-code-splitting.md
---
# 手动代码拆分
手动代码拆分是一项强大的功能,它允许你进行手动代码拆分,以补充[自动代码拆分](./automatic-code-splitting.md)。当你希望通过将应用拆分为更小、更易管理的部分来优化其加载性能时,这非常有用。
在阅读本指南之前,你应先了解 Rolldown 的[自动代码拆分](./automatic-code-splitting.md)功能。本指南将解释手动代码拆分的工作原理,以及如何有效地使用它。
在深入细节之前,我们先澄清一些事情。
* 自动代码拆分和手动代码拆分并不矛盾。使用手动代码拆分并不意味着禁用自动代码拆分。
一个模块会根据你的配置,要么被自动代码拆分捕获,要么被手动代码拆分捕获,但不会同时被两者捕获。如果某个模块没有被手动代码拆分捕获,它仍然会被放入由自动代码拆分创建的 chunk 中,同时遵守我们在[自动代码拆分](./automatic-code-splitting.md)指南中解释的规则。
## 为什么使用手动代码拆分?
自动代码拆分不会考虑加载性能或缓存失效。它只是根据模块的静态导入来分组。这可能会导致不理想的 chunk 划分,生成的大 chunk 在加载性能上可能不佳,或者在每次部署时都会导致缓存失效。
## 如何使用手动代码拆分?
让我们看一下下面这个示例:
```jsx
// index.jsx
import * as ReactDom from 'react-dom';
import App from './App.jsx';
ReactDom.createRoot(document.getElementById('root')).render();
// App.jsx
import * as React from 'react';
import { Button } from 'ui-lib';
export default function App() {
return