React createElement vs cloneElement

时间:2016-02-25 00:34:07

标签: javascript reactjs clone

如果使用cloneElement(在现有元素实例上)或createElement(在react Element类上),哪个人在性能方面更好?我可以告诉我吗?

有时克隆某些内容比创建新实例更快。 请告诉我。感谢

2 个答案:

答案 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速度较慢。