JSX 可以在没有 Babel 的情况下运行吗?

时间:2021-07-28 05:25:22

标签: reactjs babeljs jsx

我刚刚学会了从头开始建立一个 React 项目。我只是想知道为什么 JSX 可以在没有转译器 (Babel) 的情况下运行?因为在我之前我应该​​使用 Babel 在浏览器中运行 JSX。到目前为止,这是我的设置:

  1. React 17.0.2
  2. ReactDOM 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 个答案:

答案 0 :(得分:3)

React 不需要 babel,但该库建立在使用 ES6 javascript 语法的概念之上。

然而,React 应用程序可以使用旧的 ES5 语法和 JSX 构建,这将消除对 Babel 的需要,但您将失去 ES6 的潜在优势。

因此,为了确保我们的 React webapp 向后兼容当前和旧浏览器或环境中的 JavaScript 版本,我们使用 Babel。