【发布时间】:2016-02-25 00:34:06
【问题描述】:
谁能告诉我使用 cloneElement(在现有元素实例上)或 createElement(在 react Element 类上)哪个在性能方面更好?
有时克隆某些东西比创建新实例要快。 请告诉我。谢谢
【问题讨论】:
-
为什么不运行自己的快速测试?所有重要的性能问题都应在您的特定情况下通过实际测试来回答。
标签: javascript reactjs clone
谁能告诉我使用 cloneElement(在现有元素实例上)或 createElement(在 react Element 类上)哪个在性能方面更好?
有时克隆某些东西比创建新实例要快。 请告诉我。谢谢
【问题讨论】:
标签: javascript reactjs clone
使用cloneElement 通常会更快,因为您只需要实例化一个初始组件。
这个jsperf test 显示cloneElement 的速度几乎是 Linux 上 Chromium 45 的 createElement 的两倍:
cloneElement ~1.7m ops/secondcreateElement ~0.85m ops/秒如果您有一个无需更改即可克隆的基本组件,那么使用cloneElement 是一个明确的选择,无论是在语义上还是在性能方面。
【讨论】:
在 Safari 10.0.3 中,对于上面提到的 JSPerf test,cloneElement 慢了 31%(在 Chrome 中,createElement 对我来说慢了 17%)。
我还制作了另一个JSPerf test,其中将cloneElement 与“function-as-children”进行了比较。在这种情况下,cloneElement 在 Chrome (26%) 和 Safari (46%) 中的速度都大大降低。
【讨论】: