react createElement 与 cloneElement

IT技术 javascript reactjs clone
2021-04-27 23:48:19

任何人都可以让我知道是使用 cloneElement(在现有元素实例上)还是 createElement(在 react Element 类上)在性能方面哪个更好?

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

2个回答

使用cloneElement通常会更快,因为您只需要实例化一个初始组件。

jsperf 测试显示cloneElement其速度几乎是createElementLinux 上 Chromium 45 的两倍

  • cloneElement ~1.7m 操作/秒
  • createElement ~0.85m 操作/秒

如果您有一个可以在不更改的情况下克隆的基本组件,那么使用cloneElement是一个明确的选择,无论是在语义上还是在性能方面。

在 Safari 10.0.3 中,对于上面提到JSPerf 测试,cloneElement 慢了 31% (在 Chrome 中,createElement 对我来说慢了 17%)。

我还进行了另一个JSPerf 测试,将 cloneElement 与“function-as-children”进行比较。在这种情况下,cloneElement 在 Chrome (26%) 和 Safari (46%) 中都慢了很多。