我有一个next.js
的应用程序,我想做一个代码拆分来减少我的捆绑包,以便按需加载页面。
然而,我没有找到一种方法来做到这一点,因为我不在乎我的路线。以react-router
为例,我们可以在路由上使用dynamic imports
。
有谁知道这个问题的解决方案吗?
Next.js在构建步骤中立即处理此问题。
每个可以作为入口点存在的路由都将被构建为具有First Load版本和将被路由器加载的delta版本。
您可以在本地运行yarn build && yarn start
而不是yarn dev
来尝试。
如果你仍然想要拆分和动态加载部分JS,你可以查看Next的动态导入https://nextjs.org/docs/advanced-features/dynamic-import
你还可以做一些事情来提高Next.js的性能:
- 选择正确的渲染模式
- 延迟加载非关键脚本,以便在页面空闲时加载 使用Image组件进行图像优化
- 拆分客户端代码以减少初始包大小
- 使用React Server组件(Beta版)的服务器端渲染
- 使用SWC加快构建时间
我在这里写了一篇文章,详细说明:https://szaranger.medium.com/improving-next-js-performance-6088a19395d