1. export class App extends Component {
  2. shouldComponentUpdate(prevProps, nextState) {
  3. return isEqual(prevProps, this.props)
  4. }
  5. }
  6. export class App extends PureComponent {}

Component

使用Component时,父组件的 state或 prop更新时,无论子组件的state、prop是否更新,都会触发子组件的更新。
优化是需要开发者在 shouldComponentUpdate钩子函数中自己写 render 逻辑的
缺点:

  1. 没必要的重复 render,浪费性能

PureComponent

pureComponent在 shouldComponentUpdate时,通过对新旧的 prop和 state浅比较 shallowEqual,
进行浅比较,只要对象引用地址没变化,就不会触发render,减少了不必要的render。
缺点

  1. 如果是嵌套深的对象,因为引用地址都一样,会导致页面不会更新