【发布时间】:2015-12-18 21:48:30
【问题描述】:
在我的项目中,我使用了 React 和 Babel,因此我使用了一些 ES6 功能,但主要是 React 使用的那些。 Webstorm 让我可以选择将我的语法标记为 ES6 或 JSX Harmony,我感到很困惑。
我想我知道什么是 ES6/ES2015 以及如何将它与编译器一起使用,例如。通天塔。
困难的部分 id JSX/JSX Harmony。我知道 React 使用“JSX”但是:
这和 here 是同一个 JSX 吗?如果不是,Webstorm 中的 JSX Harmony 选项是指哪个 JSX?
我看过提到的兼容性页面 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 支持。
【问题讨论】:
-
React JSX 和完整的 ES6 是什么? - 这是对 Webstorm JSX Harmony 的评论的回答,但评论消失了。
-
“Harmony”是 ES6 的旧名称,以防万一。
-
那么 JSX Harmony 会是 ES6 + React JSX,对吧?
-
回答我自己 - 可能不,这可能是 React JSX 扩展加上一些 ES6 转换,如这里 (facebook.github.io/react/jsx-compiler.html)。
-
@JeffreyYasskin: not exactly, no,尽管过去它们经常可以互换。
标签: javascript ecmascript-6 webstorm react-jsx