重寫shouldComponentUpdate方法
import React, { Component } from 'react';
import { is } from 'immutable';
export default class PureComponent extends Component {
shouldComponentUpdate(newProps, newState) {
let oldState = this.state || {};
let oldProps = this.props || {};
newState = newState ? newState : {};
if (Object.keys(oldState).length !== Object.keys(newState).length || Object.keys(oldProps).length !== Object.keys(newProps).length) {
return true;
}
//屬性的個數長度不同更新,屬性不相同更新,不然不更新
for (let key in newState) {
if (!is(newState[key], oldState[key])) {
return true;
}
}
for (const key in newProps) {
if (!is(oldProps[key], newProps[key])) {
return true;
}
}
return false;
}
}