PureComponent和component

89 阅读1分钟

使用component存在的问题

父组件的state,props发生改变引起重新渲染的时候,子组件无论state,props有没有发生改变都会跟着进行重新渲染。形成了许多没必要的render,造成了性能的浪费。

component可以使用shouldComponentUpdate来控制组件的render

使用PureComponent的优点

当组件更新时,pureComponent的shouldComponentUpdate函数里对props和state做了一个浅对比,如果组件的state和prop都没有发生变化,就不会触发render方法,省去了virtual DOM的diff和重新生成的过程,从而提升了性能。

使用PureComponent的缺点

缺点是因为只进行了浅比较,就导致当state和props修改的是简单数据类型的时候,可以正确判断时候触发render,但是对于复杂数据类型,修改并不会触发render,这样就导致了问题。