--- title: Conditional Module Loading impact: HIGH impactDescription: loads large data only when needed tags: bundle, conditional-loading, lazy-loading --- ## Conditional Module Loading Load large data or modules only when a feature is activated. **Example (lazy-load animation frames):** ```tsx function AnimationPlayer({ enabled, setEnabled, }: { enabled: boolean; setEnabled: React.Dispatch>; }) { const [frames, setFrames] = useState(null); useEffect(() => { if (enabled && !frames && typeof window !== "undefined") { import("./animation-frames.js") .then((mod) => setFrames(mod.frames)) .catch(() => setEnabled(false)); } }, [enabled, frames, setEnabled]); if (!frames) return ; return ; } ``` The `typeof window !== 'undefined'` check prevents bundling this module for SSR, optimizing server bundle size and build speed.