createElement vs cloneElement

ref – https://stackoverflow.com/questions/35616029/react-createelement-vs-cloneelement

JSX elements will be transpiled to React.createElement() functions to create React elements which are going to be used for the object representation of UI.

Whereas cloneElement is used to clone an element and pass it new props.

Using cloneElement will be usually be faster because you only need to instantiate one initial component.

This jsperf test shows cloneElement to be nearly twice as fast as createElement for Chromium 45 on Linux:

cloneElement ~1.7m ops/second
createElement ~0.85m ops/second

If you have a base component that you can clone without changing, then using cloneElement is a clear choice, both semantically and in terms of performance.