Как работает jsx

Код до преобразования в структуру jsx

import React from 'react';//Импорт библиотеки рект обязательно
import logo from './logo.svg';
import './App.css';//стили

function App() {
  /* 
   *   Любой новы элемент формирует метод из объекта React, React.createElement
   *   Первый параметр название создоваемого элемента  (h1),
   *   Второй параметр опции , к примеру передаем class="name",
   *   Третий параметр дочерние элементы, они создаются по аналогии с радителем, если их несколько пишем через запятую
  */
  return React.createElement('div', {className: 'App'},
      React.createElement('h1', null,'hello world'),
      React.createElement('p',null ,'React')
  );
}

export default App;

Как выглядит код после преоброзования:

import React from 'react';//Импорт библиотеки рект обязательно
import logo from './logo.svg';
import './App.css';//стили

function App() {

  return (
    <div className="App">
        <h1>hello world!!</h1>
        <p>React</p>
    </div>
  );
}

export default App;

В итоге на выходе получаем сформированный html:

    <div id="root">
        <div class="App">
            <h1>hello world</h1>
            <p>React</p>
        </div>
    </div>