Performance: Reusable UI components
MEDIUM IMPACT
Reusable UI components affect rendering speed and bundle size by controlling how often components re-render and how much code is reused.
const handleSave = () => save(); const handleCancel = () => cancel(); function Button({ label, onClick }) { return <button onClick={onClick}>{label}</button>; } function App() { return ( <> <Button label="Save" onClick={handleSave} /> <Button label="Cancel" onClick={handleCancel} /> </> ); }
function Button(props) { return <button>{props.label}</button>; } // Used inline with anonymous functions causing re-renders function App() { return ( <> <Button label="Save" onClick={() => save()} /> <Button label="Cancel" onClick={() => cancel()} /> </> ); }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Inline anonymous functions in props | High (new functions cause re-renders) | Multiple per parent render | High due to repeated layout | [X] Bad |
| Stable function references with memoized components | Low (re-renders only on prop change) | Single or minimal | Low due to fewer layout recalculations | [OK] Good |