React.createElementUse <lowercase /> tags for DOM elements:
<div />React.createElement('div')And use <Capitalized /> tags for custom elements:
<Modal />React.createElement(Modal)propsUse "" quotes when your props are strings:
<Modal title="Edit" />React.createElement(Modal, {
title: "Edit"
})And use {} braces when your props are literals or variables:
<Modal
title={`Edit ${name}`}
onClose={this.handleClose}
/>React.createElement(Modal, {
title: `Edit ${name}`,
onClose: this.handleClose,
}){...object} becomes Object.assignUse it in place of Object.assign
<div
className='default'
{...this.props}
/>React.createElement('div',
Object.assign(
{ className: 'default' },
this.props
)
)props.children.They can be text:
<p>
What good is a phone call...
</p>React.createElement('p', {},
"What good is a phone call..."
)They can be elements:
<Modal>
<h1>
And then there will be cake
</h1>
</Modal>React.createElement(Modal, {},
React.createElement('h1', {},
"And then there will be cake"
)
)Or they can be a mix of both:
<p>
I'm sorry <em>Dave</em>
</p>React.createElement('p', {},
"I'm sorry ",
React.createElement('em', {}, "Dave")
){}You can interpolate text:
<p>
I'm sorry {name}
</p>React.createElement('p', {},
"I'm sorry ", name
)Or even arrays:
<ol>
{steps.map(step =>
<li key={step.name}>
{step.content}
</li>
)}
</ol>React.createElement('ol', {},
steps.map((step, i) =>
React.createElement(
'li', {key: i}, step
)
)
)