如果使用cloneElement(在现有元素实例上)或createElement(在react Element类上),哪个人在性能方面更好?我可以告诉我吗?
有时克隆某些内容比创建新实例更快。 请告诉我。感谢
答案 0 :(得分:12)
使用cloneElement
通常会更快,因为您只需要实例化一个初始组件。
对于Linux上的Chromium 45,此jsperf test显示cloneElement
几乎是createElement
的两倍:
cloneElement
~1.7m ops / second createElement
~0.85m ops / second 如果你有一个基本组件,你可以克隆而不改变,那么在语义和性能方面使用cloneElement
是一个明确的选择。
答案 1 :(得分:1)
在Safari 10.0.3中,对于上面提到的JSPerf test,cloneElement的速度要慢31%(在Chrome中,createElement对我来说慢了17%)。
我还创建了另一个JSPerf test,其中cloneElement与“function-as-children”进行了比较。在这种情况下,Chrome(26%)和Safari(46%)中的cloneElement速度较慢。