对React中的Component、PureComponent、memo的理解

在正确情况下,我们写组件都是用ES6中的class关键字来创建组件,如下写法:

import React, { Component } from 'react';
export default class Main extends Component {
  //组件代码
}

但是在有些组件中,我们却是用下面这种写法来创建组件的:

import React, { PureComponent } from 'react';
export default class Main extends PureComponent {
  //组件代码
}

那么两者的区别在哪里呢?
一、继承了PureComponent,进行的就是“浅”比较,它是通过Prop和State的浅比较来实现的shouldComponentUpdate.
二、PureComponent不仅会影响本身,而且会影响子组件,所以PureComponent最佳情况是展示组件,也就是“纯”组件。
新版本发布的memo跟PureComponent很相似,都是来帮助我们控制何时渲染组件的。正常我们的组件是只要你的props和state改变了,就会重新渲染一次组件,但是PureComponent、memo就是来帮助我们在有需要的时候渲染组件的。这对性能是一个大大提升。但是在使用PureComponent只能在es6 中的class组件使用,但memo却可以在function Component中使用。从这点也可以看出,react中会增加对Hook的重视。

你可能感兴趣的:(对React中的Component、PureComponent、memo的理解)