name: 动态导入优化 description: 使用 next/dynamic 进行懒加载重组件。适用于导入在初始渲染时不需要的大组件,如编辑器、图表或富文本编辑器。
重组件的动态导入
使用 next/dynamic 来懒加载在初始渲染时不需要的大组件。
不正确 (Monaco 捆绑在主块中,约 300KB):
import { MonacoEditor } from './monaco-editor'
function CodePanel({ code }: { code: string }) {
return <MonacoEditor value={code} />
}
正确 (Monaco 按需加载):
import dynamic from 'next/dynamic'
const MonacoEditor = dynamic(
() => import('./monaco-editor').then(m => m.MonacoEditor),
{ ssr: false }
)
function CodePanel({ code }: { code: string }) {
return <MonacoEditor value={code} />
}