Component应该是我们平时写react代码用的最多的api之一了,Component和PureComponent也是react两大baseClasses。
Component在初始化的时候,会在this上绑定四个对象,分别是props,context,refs,updaters。接着会在原型上绑定一个setState的方法,setState接受两个参数,分别是partialState和一个callback回调。partialState可以是一个对象,也可以是一个函数。判断完你传入的partialState是对象还是函数后,setState会执行一个this.updater.enqueueSetState
方法更新你的state对象,这个方法是在reactDom里面去实现的,所以放到后面再讲。
那么为什么要把enqueueSetState方法绑定在this.updater这样一个对象上呢。因为更新完state之后涉及到渲染,这个渲染是跟平台有关的。reactDom和react-native渲染方式是不一样的,这样可以通过传入一个updater对象来实现对渲染的一个定制方式。
而PureComponent则和Component的代码几乎一样,只是多绑定了一个type属性,代码如下