BP207: Use functional components whenever possible
Use functional components whenever possible. Functional components are simpler and easier to read than class components. They also have better performance because they don't have the overhead of a class instance. Functional components are also easier to test because they don't have state or lifecycle methods.
Functional components are a great choice for presentational components that don't have any state or lifecycle methods. They are also a good choice for components that only have a render method. Functional components are also a good choice for components that need to be reused across multiple projects.
// Class component
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}
handleClick() {
this.setState({ count: this.state.count + 1 });
}
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={() => this.handleClick()}>Increment</button>
</div>
);
}
}
// Functional component
function MyComponent() {
const [count, setCount] = React.useState(0);
function handleClick() {
setCount(count + 1);
}
return (
<div>
<p>Count: {count}</p>
<button onClick={() => handleClick()}>Increment</button>
</div>
);
}
In the above example, the class component and the functional component both do the same thing. However, the functional component is simpler and easier to read. It also has better performance because it doesn't have the overhead of a class instance. The functional component is also easier to test because it doesn't have state or lifecycle methods.