Может ли JSX работать без Вавилона?

#reactjs #babeljs #jsx

Вопрос:

Я только что научился создавать проект React с нуля. Мне просто интересно, почему JSX может работать без транспилера (Babel)? Потому что раньше я думал, что мне следует использовать Babel для запуска JSX в браузере. Вот моя установка на данный момент:

  1. Реагировать 17.0.2
  2. Реакция 17.0.2
  3. Посылка

App.js

 import React, { useState } from "react";
import ReactDOM from "react-dom";

const App = () => {
   const [name, setName] = useState("");

   function changeNameHandler(e) {
      setName(e.target.value);
   }

   return (
      <div>
         <input type="text" value={name} onChange={changeNameHandler} />
         <h1>Your name is {name}</h1>
      </div>
   );
 };

ReactDOM.render(React.createElement(App), document.getElementById("app"));
 

Ответ №1:

React не требует babel, но библиотека построена на концепции использования синтаксиса javascript ES6.

Приложение React, однако, может быть построено со старым синтаксисом ES5 и JSX, что устранит необходимость в Babel, но вы потеряете потенциальные преимущества ES6.

Поэтому, чтобы убедиться, что наше веб-приложение React обратно совместимо с версией JavaScript в текущих и более старых браузерах или средах, мы используем Babel.