Performance: Handling checkboxes and radio buttons
MEDIUM IMPACT
This affects interaction responsiveness and rendering speed when users toggle checkboxes or radio buttons in React forms.
function Form() { const [checked, setChecked] = React.useState(false); const handleChange = (e) => setChecked(e.target.checked); return <input type="checkbox" checked={checked} onChange={handleChange} />; }
function Form() { const [checked, setChecked] = React.useState(false); return <input type="checkbox" checked={checked} onChange={() => setChecked(!checked)} />; }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Direct state toggle without event | Minimal | 1 per toggle | Low | [!] OK |
| Using event.target.checked in handler | Minimal | 1 per toggle | Low | [OK] Good |
| Spreading state object on toggle | Minimal | 1 per toggle | Low to Medium | [!] OK |
| Functional state update with prev state | Minimal | 1 per toggle | Low | [OK] Good |
| Inline onChange handlers for radios | Minimal | 1 per toggle | Low | [!] OK |
| Single stable handler for radios | Minimal | 1 per toggle | Low | [OK] Good |