React 组件之 Component PureComponent Function Component

Posted ajaxkong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React 组件之 Component PureComponent Function Component相关的知识,希望对你有一定的参考价值。

Virtual DOM , 通过高效的Diff算法对变化的部分首尾两端做批量更新,所有的比较都是浅比较shallowEqual。谁都玩不起深比较,facebook自己都做不到~


Component :一定要配套使用shouldComponentUpdate , 否则不管props or state是否更新组件一定更新

pureComponent :当组件的props和state不变时,组件是不更新的。仅仅只需要替换component => pureComponent,零投入超高回报

function Component:写纯函数组件非常简洁优雅,官方也推荐这种写法。但是,这并不代表纯函数组件是性能最好的组件写法。
在内部被包装成了一个只有render方法的StatelessComponent组件,在所有情况下都会更新。
(facebook说过要优化StatelessComponent,要优化它的性能也很简单,但就是一直没优化,也不知道为什么。后来我才知道有了终极解决方案,React Hook)
因此,并不建议使用它写比较复杂的组件

总结:

PureComponent > StatelessComponent > Component

function Component vs PureCompoent ,不建议比较复杂的页面,使用function Component.

 

参考知乎链接:React组件性能优化实例解析 https://zhuanlan.zhihu.com/p/34632531

以上是关于React 组件之 Component PureComponent Function Component的主要内容,如果未能解决你的问题,请参考以下文章

react之组件的shouldcomponentUpdate使用&&Component与PureComponent

重构 pure() 与 React.PureComponent

React.Component 与 React.PureComponent(React之性能优化)

html Hello React - 复合组件 - 访问childern。 JsFiddle:http://jsfiddle.net/gh/gist/library/pure/1345be9f312

React Js之组件

react组件之非受控组件和高阶组件