https://codesandbox.io/s/plain-html-with-js-o7m2l
const rootElement = document.getElementById("root"); const element = document.createElement("div"); element.textContent = "Hello World"; element.className = "container"; rootElement.appendChild(element);
createElement
const rootElement = document.getElementById('root'); const element = React.createElement('div', { children: 'Hello World', className: 'container', }); ReactDOM.render(element, rootElement)
const rootElement = document.getElementById('root'); const message = "Hello World" const element = <div className="container">{message}</div> ReactDOM.render(element, rootElement);
https://babeljs.io/repl
const items = ['', '', '', '', '', '']; const ul = document.createElement('ul'); document.getElementById('root').appendChild(ul); items.forEach(function (item) { let li = document.createElement('li'); ul.appendChild(li); li.innerHTML += item; });
const items = ['', '', '', '', '', '']; const element = items.map(item => { return <li>{item}</li>; }); const rootElement = document.getElementById('root'); ReactDOM.render(element, rootElement);
https://codesandbox.io/s/plain-html-with-js-forked-vzgsy
function tick() { const rootElement = document.getElementById("root"); const time = new Date().toLocaleTimeString(); const element = ` <div> <span>Time:</span> <input type="text" value="${time}" /> </div> `; rootElement.innerHTML = element; } setInterval(tick, 1000);
show that JSX transpiles to createElement under the hood