#reactjs #babeljs #jsx
Вопрос:
Я только что научился создавать проект React с нуля. Мне просто интересно, почему JSX может работать без транспилера (Babel)? Потому что раньше я думал, что мне следует использовать Babel для запуска JSX в браузере. Вот моя установка на данный момент:
- Реагировать 17.0.2
- Реакция 17.0.2
- Посылка
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.