Performance: Error handling with error.tsx
MEDIUM IMPACT
This affects page load speed and interaction responsiveness by controlling how errors are caught and displayed without full page reloads.
export default function Error({ error, reset }) { return ( <div role="alert"> <p>Something went wrong: {error.message}</p> <button onClick={() => reset()}>Try again</button> </div> ); } // error.tsx catches errors and allows recovery without reload
export default function Page() { if (someError) { throw new Error('Oops!'); } return <div>Content</div>; } // No error boundary or error.tsx used
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| No error.tsx, error causes full reload | High (full page reload creates many DOM nodes) | Multiple (full re-layout triggered) | High (browser repaints entire page) | [X] Bad |
| Using error.tsx with fallback UI | Low (only error UI nodes rendered) | Single (only error UI layout) | Low (small repaint area) | [OK] Good |