I’m using the Airbnb style guide with eslint and one warning mentioned that a very simple Component subclass with no properties or state but it just has a render method, should probably be written as a pure component.
Below is an example of a pure component in it’s most simplistic and minimal form.
import React, { ReactElement } from 'react'; const MyButton = (): ReactElement => ( <div>My Button</div> ); export default MyButton;
React also comes with a PureComponent base class, hence we could write
class MyButton extends React.PureComponent { render() { <div>My Button</div> } }
This is slightly different to our function version of a pure component in that it also handles properties and state, see the documentation for more information.
In both cases, these changes from a standard React Component result in performance increases, so very much worth baring in mind if your components are able to be written in these ways.