Performance: Client-only modules
MEDIUM IMPACT
This affects page load speed by deferring non-essential JavaScript to client side, improving initial server render and reducing blocking time.
import dynamic from 'next/dynamic'; const BrowserOnlyComponent = dynamic(() => import('browser-only-module'), { ssr: false }); export default function Page() { return <BrowserOnlyComponent />; }
import BrowserOnlyComponent from 'browser-only-module'; export default function Page() { return <BrowserOnlyComponent />; }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Import client-only module normally | N/A on server, large bundle on client | Multiple reflows if module triggers layout | High paint cost due to blocking JS | [X] Bad |
| Dynamic import with ssr: false | Minimal server DOM, client loads later | Single reflow after load | Lower paint cost, non-blocking | [OK] Good |