/* eslint-disable no-unused-vars, class-methods-use-this */
import { PureComponent } from 'react';

class ReactPureComponentUpdate extends PureComponent {
	componentWillMount() {
		this.componentWillMountOrReceiveProps(this.props);
	}

	componentDidMount() {
		this.componentDidMountOrUpdate(this.props, this.state);
	}

	componentWillReceiveProps(nextProps) {
		this.componentWillMountOrReceiveProps(nextProps);
	}

	componentDidUpdate(prevProps, prevState) {
		this.componentDidMountOrUpdate(prevProps, prevState);
	}

	componentWillMountOrReceiveProps(nextProps) {}

	componentDidMountOrUpdate(prevProps, prevState) {}
}

export default ReactPureComponentUpdate;

/* eslint-disable no-unused-vars, class-methods-use-this */
import { Component } from 'react';

class ReactComponentUpdate extends Component {
	componentWillMount() {
		this.componentWillMountOrReceiveProps(this.props);
	}

	componentDidMount() {
		this.componentDidMountOrUpdate(this.props, this.state);
	}

	componentWillReceiveProps(nextProps) {
		this.componentWillMountOrReceiveProps(nextProps);
	}

	componentDidUpdate(prevProps, prevState) {
		this.componentDidMountOrUpdate(prevProps, prevState);
	}

	componentWillMountOrReceiveProps(nextProps) {}

	componentDidMountOrUpdate(prevProps, prevState) {}
}

export default ReactComponentUpdate;

--- 
+++ 
@@ -1,7 +1,7 @@
 /* eslint-disable no-unused-vars, class-methods-use-this */
-import { Component } from 'react';
+import { PureComponent } from 'react';
 
-class ReactComponentUpdate extends Component {
+class ReactPureComponentUpdate extends PureComponent {
 	componentWillMount() {
 		this.componentWillMountOrReceiveProps(this.props);
 	}
@@ -23,4 +23,4 @@
 	componentDidMountOrUpdate(prevProps, prevState) {}
 }
 
-export default ReactComponentUpdate;
+export default ReactPureComponentUpdate;
Update PureComponent to extend React.PureComponent.
