Performance: svelte:window for window events
MEDIUM IMPACT
This affects how efficiently window-level events are handled and how they impact page responsiveness and rendering.
<script> let width = 0; </script> <svelte:window on:resize={() => width = window.innerWidth} /> <p>Window width: {width}</p>
<script> import { onMount, onDestroy } from 'svelte'; let width = 0; function updateWidth() { width = window.innerWidth; } onMount(() => { window.addEventListener('resize', updateWidth); }); onDestroy(() => { window.removeEventListener('resize', updateWidth); }); </script> <p>Window width: {width}</p>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Manual addEventListener/removeEventListener | Multiple listeners if not cleaned | Multiple reflows on each event | High paint cost on frequent events | [X] Bad |
| Using svelte:window event binding | Single reactive update | Reflow only if state changes affect layout | Lower paint cost due to optimized updates | [OK] Good |