In React, a PureComponent is a class component that is optimized for performance by implementing a shallow comparison of props and state. It is a subclass of the regular React Component class and provides a default implementation of the shouldComponentUpdate method.
The shouldComponentUpdate method is responsible for determining whether a component should re-render or not. By default, it returns true and triggers a re-render every time the component receives new props or state. However, PureComponent overrides this method and performs a shallow comparison of the current and next props and state. If there are no changes, it prevents unnecessary re-renders by returning false.
Therefore, defining a shouldComponentUpdate method while extending PureComponent is redundant and should be avoided. By not defining shouldComponentUpdate, you allow React.PureComponent to handle the optimization for you.
class MyComponent extends React.PureComponent { // Noncompliant
shouldComponentUpdate() {
// does something
}
render() {
return Hello!
}
}
You should either remove the redundant method shouldComponentUpdate or turn your component into a regular one by extending Component.
class MyComponent extends React.Component {
shouldComponentUpdate() {
// does something
}
render() {
return Hello!
}
}