Skip to content

Commit 471ddfe

Browse files
perf(dom-to-react): destructure react object to optimize parser
1 parent d941132 commit 471ddfe

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

lib/dom-to-react.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ var React = require('react');
22
var attributesToProps = require('./attributes-to-props');
33
var utilities = require('./utilities');
44

5+
var cloneElement = React.cloneElement;
6+
var createElement = React.createElement;
7+
var isValidElement = React.isValidElement;
8+
59
/**
610
* Converts DOM nodes to React elements.
711
*
@@ -14,27 +18,27 @@ function domToReact(nodes, options) {
1418
options = options || {};
1519
var result = [];
1620
var node;
17-
var isReplacePresent = typeof options.replace === 'function';
18-
var replacement;
21+
var hasReplace = typeof options.replace === 'function';
22+
var replaceElement;
1923
var props;
2024
var children;
2125

2226
for (var i = 0, len = nodes.length; i < len; i++) {
2327
node = nodes[i];
2428

25-
// replace with custom React element (if applicable)
26-
if (isReplacePresent) {
27-
replacement = options.replace(node);
29+
// replace with custom React element (if present)
30+
if (hasReplace) {
31+
replaceElement = options.replace(node);
2832

29-
if (React.isValidElement(replacement)) {
33+
if (isValidElement(replaceElement)) {
3034
// specify a "key" prop if element has siblings
3135
// https://fb.me/react-warning-keys
3236
if (len > 1) {
33-
replacement = React.cloneElement(replacement, {
34-
key: replacement.key || i
37+
replaceElement = cloneElement(replaceElement, {
38+
key: replaceElement.key || i
3539
});
3640
}
37-
result.push(replacement);
41+
result.push(replaceElement);
3842
continue;
3943
}
4044
}
@@ -84,7 +88,7 @@ function domToReact(nodes, options) {
8488
props.key = i;
8589
}
8690

87-
result.push(React.createElement(node.name, props, children));
91+
result.push(createElement(node.name, props, children));
8892
}
8993

9094
return result.length === 1 ? result[0] : result;

0 commit comments

Comments
 (0)