我有一个应用程序,它在登录页面上有 2 个部分,即 Entrance1 和 Entrance2。我想以这样一种方式设计我的 approutes 和延迟加载:当用户单击 Entrance1 时,只有与 Entrance1 相关的路由和 Entrance1 内部所需的组件应该加载到包中(React-lazy 和 suspense。此处不使用 webpack)。Entrance1 和 Entrance2 内 50% 的路由和组件是重复的。
我有一个沙箱,其中所有属于 Entrance1 和 Entrance2 的路由都位于一个 Approute 中。为简洁起见,我在沙箱中添加了最少的路由和组件。但是我的应用程序有 25 条属于 Entrance1 的路由,并且大部分相同的路由用于 Entrance2(网址指向 /entrance2/comp1 而不是 /entrance1/comp1),我觉得这不是一个好的设计。此外,它会使捆绑包不必要地沉重。
如何让这个工作?
使用 React.lazy 将 App 基于 Routing Link 分解成小包
最初,npm run build 后的捆绑器显示了 4 个捆绑包,如下所示:-
创建优化的生产版本...编译成功。
File sizes after gzip: 47.81 KB build/static/js/2.19e3299d.chunk.js 1.13 KB build/static/js/main.7da2e471.chunk.js 787 B build/static/js/runtime-main.07a021b3.js 746 B build/static/css/main.870850a4.chunk.css
后期优化:- 创建优化的生产版本...编译成功。
File sizes after gzip: 47.81 KB (+2 B) build/static/js/2.55b47d25.chunk.js 1.21 KB (+91 B) build/static/js/main.53ee5ec1.chunk.js 1.2 KB (+442 B) build/static/js/runtime-main.eace4f45.js 746 B build/static/css/main.870850a4.chunk.css 290 B build/static/js/4.9c560333.chunk.js 288 B build/static/js/3.cba0f305.chunk.js 256 B build/static/js/5.7e6af1ad.chunk.js