Performance: Default props
This affects initial component rendering speed and bundle size by how default values are handled.
function Button({ color = 'blue', label }) { return <button style={{ color }}>{label}</button>; }
function Button(props) { const color = props.color || 'blue'; return <button style={{ color }}>{props.label}</button>; }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Inline fallback inside render | No extra DOM nodes | Multiple reflows if styles change | Higher paint cost due to recalculations | [X] Bad |
| ES6 default parameters | No extra DOM nodes | Single reflow | Lower paint cost | [OK] Good |
function Greeting({ name = 'Friend' }) {
return <h1>Hello, {name}!function Button(props) {
const { label } = props;
return <button>{label}</button>;
}
Button.defaultProps = { label: 'Click me' };
// Usage:
<Button />function Profile({ user = { name: 'Guest', age: 0 } }) {
return <div>Name: {user.name}, Age: {user.age}</div>;
}Pass the test and this pattern moves unknown