06 · 实验 C
next/dynamic 动态导入
把不首屏需要的重量级组件拆出去,用 next/dynamic 按需加载,减少首屏 JS 体积。
观察:首次点"加载"时,Network 面板会新出现一个独立的 JS chunk(重量级组件的代码)。 这就是 next/dynamic 把大依赖拆出首屏的效果。
关键认知
next/dynamic让组件变成独立 chunk,不进首屏。 打开 Network 面板可看到:首屏只有核心 bundle,点按钮才请求那个组件的 chunk。- 适用于:图表库、编辑器、地图、只在用户操作后才出现的重组件。
- 与
React.lazy类似,但next/dynamic还支持ssr开关和loading占位。 - 坑(Next 16):
ssr: false只能在 客户端组件里用,服务端组件会直接 build 报错。 - 更强的思路:如果组件能改成服务端组件(不发 JS),比动态导入更优(承接第 3 章)。