结论
只要是类组件,并且继承自component,都可以将component替换为PureCompoennt
component与PureComponent的关系
- (仅限类组件)前提,在react的虚拟dom中,进行高效的更新虚拟dom是最好的优化react的方案,react的虚拟dom的更新,是修改前和修改后进行比较,然后进行修改。理论来说,react在有dom发生改变时,进行新旧虚拟dom的对比。在react组件进行嵌套时,在对比的时候,我们总希望仅仅对比发生改变的组件。这样的话是最好的。但是令人遗憾的是,一般情况react会进行全部的比较。也就是说行能会大大的降低。 对此我推荐PureCompnent
- PureComponent浅层次比较
浅比较:所谓浅比较,最直观的理解就是仅仅比较最外层。不会进入更深层的比较。对于继承自PureComponent的组件,都只会进行浅比较。
在react开发时,组件进行嵌套的情况下,类组件使用继承自PureComponent,组件更新时仅仅会对比自身的dom.也就是说PureComponnet所嵌套的类组件若没有改变,被嵌套的组件不会进行虚拟dom的对比
- component深层次比较
深层次比较:深层次比较,最直观的理解就是比较所有的不同。对于继承自Component的组件,会进行深层次比较。
在react开发时,组件进行嵌套的情况下,类组件使用继承自Component,组件更新时会对比所有自身嵌套的组件.也就是说Componnet所嵌套的类组件无论有没有改变,只要最外部的组件进行改变,虚拟dom将会对比自身所有的dom。