Treat React JSX elements as value types and hoist them to the highest scope
In
const Hr = () => {
return <hr className="hr" />;
};
Out
const _ref = <hr className="hr" />;
const Hr = () => {
return _ref;
};
Deopts
-
Spread Operator
<div {...foobar} />
-
Refs
<div ref="foobar" /> <div ref={node => this.node = node} />
-
Composite Components
const ComponentA = () => <div><MyCustomComponent /></div>;
npm install --save-dev babel-plugin-transform-react-constant-elements
.babelrc
{
"plugins": ["transform-react-constant-elements"]
}
babel --plugins transform-react-constant-elements script.js
require("babel-core").transform("code", {
plugins: ["transform-react-constant-elements"]
});