Performance: Reactive blocks for side effects
MEDIUM IMPACT
This affects how efficiently the browser updates the UI and runs side effects when reactive data changes.
let count = 0; $: if (count !== 0) { console.log('Count changed:', count); // side effect runs only when count changes and meets condition }
let count = 0; $: { console.log('Count changed:', count); // heavy side effect here }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Unconditional reactive block with heavy side effects | Multiple DOM updates if side effects modify DOM | Multiple reflows if layout changes | High paint cost due to frequent updates | [X] Bad |
| Conditional reactive block limiting side effects | Minimal DOM updates only when needed | Single or no reflows if no layout changes | Low paint cost due to fewer updates | [OK] Good |