javascript - JSX 与 ES6/ES2015

标签 javascript ecmascript-6 webstorm reactjs

在我的项目中,我使用 React 和 Babel,因此我使用了一些 ES6 功能,但主要是 React 使用的功能。 Webstorm 为我提供了将语法标记为 ES6 或 JSX Harmony 的选项,但我感到很困惑。

我想我知道什么是 ES6/ES2015 以及如何将它与编译器一起使用,例如。通天塔。

困难部分 ID JSX/JSX Harmony。我知道 React 使用“JSX”,但是:

  1. 这与 here 是同一个 JSX吗? ?如果不是,Webstorm 中的 JSX Harmony 选项指的是哪个 JSX?

  2. 我已经看到提到的兼容性页面 here并且知道 JSX Transformer 仅支持 ES6 的一小部分,而且显然 Babel 支持 JSX 作为 ES6 支持的补充,因此 JSX 似乎不仅仅是 ES6 子集......如果是这样,JSX React 或 JSX Harmony 的哪些功能不属于其中ES6 规范?

编辑:

对于问题1,我确信这是两个完全不同的事情。那么 JSX Harmony 是什么?

编辑2:

为了回答我自己的问题,Webstorm JSX Harmony 最有可能指的是带有 --harmony 标志的 React JSX 编译器支持的语法 - 添加了一些 ES6 支持。

最佳答案

不,这不是同一个 jsx。据我所知,有两种称为 JSX 的语言:

  1. React.js 的模板语言

  2. 一种编译为 JavaScript 的静态类型编程语言。

这两种语言就像 XML 和 C++ 一样不同。

您要查找的 JSX 来自此处:https://github.com/facebook/react可以通过 npm 从这里安装:https://www.npmjs.com/package/react-tools

JSX 编程语言不会编译 React JSX 模板。

关于javascript - JSX 与 ES6/ES2015,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708020/

相关文章:

javascript - 探索 JS on Object.assign 文本中的勘误表?

javascript - 嵌套对象和数组解构

javascript - 一个模块不能有多个默认导出

Javascript变量使用jquery查找变量

JavaScript/Node promise : Executing them in sequence

javascript - 捕获按钮上所有单击的跨浏览器方式是什么?

javascript - React.js 和 webpack - 为什么它不允许 var、let、const?

typescript - TSLint: 'from' 之前的空格太多(导入间距)

angularjs - jsdoc 上的 Angular 参数类型

javascript - CodeSandbox 出现 Material-UI 错误 : undefined is not an object (evaluating '_context$muiTheme.borderRadius' )