JSX 对比 ES6/ES2015
JSX vs ES6/ES2015
在我的项目中,我使用了 React 和 Babel,所以我使用了一些 ES6 功能,但主要是 React 使用的功能。 Webstorm 让我可以选择将我的语法标记为 ES6 或 JSX Harmony,我感到很困惑。
我想我知道 ES6/ES2015 是什么以及如何将它与编译器一起使用,例如。通天塔。
难的部分id JSX/JSX和谐。我知道 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 很可能指的是 React JSX 编译器支持的语法,带有 --harmony
标志 - 添加一点 ES6 支持。
不,这不是您提到的 JSX。是 this one。
JSX is a XML-like syntax extension to ECMAScript without any defined
semantics. It's NOT intended to be implemented by engines or browsers.
JSX 不打算将 ES6 功能转换为 ES5,因此,它只实现了一些最有用的功能来帮助模板代码。
如果你今天要用ES6,你必须用Babel (preferred) or Traceur to transpile your code to ES5, and then you can use most of the features already available. If you want an even more powerful transpiler, that also has type definitions, you can take a look at Typescript。
不,这不是同一个 jsx。我知道有两种叫做 JSX 的语言:
React.js
的模板语言
一种静态类型的编程语言,可编译为 javascript。
这两种语言就像XML和C++一样不同。
您正在寻找的 JSX 来自这里:https://github.com/facebook/react and can be installed via npm from here: https://www.npmjs.com/package/react-tools
JSX 编程语言不会编译 React JSX 模板。
在我的项目中,我使用了 React 和 Babel,所以我使用了一些 ES6 功能,但主要是 React 使用的功能。 Webstorm 让我可以选择将我的语法标记为 ES6 或 JSX Harmony,我感到很困惑。
我想我知道 ES6/ES2015 是什么以及如何将它与编译器一起使用,例如。通天塔。
难的部分id JSX/JSX和谐。我知道 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 很可能指的是 React JSX 编译器支持的语法,带有 --harmony
标志 - 添加一点 ES6 支持。
不,这不是您提到的 JSX。是 this one。
JSX is a XML-like syntax extension to ECMAScript without any defined semantics. It's NOT intended to be implemented by engines or browsers.
JSX 不打算将 ES6 功能转换为 ES5,因此,它只实现了一些最有用的功能来帮助模板代码。
如果你今天要用ES6,你必须用Babel (preferred) or Traceur to transpile your code to ES5, and then you can use most of the features already available. If you want an even more powerful transpiler, that also has type definitions, you can take a look at Typescript。
不,这不是同一个 jsx。我知道有两种叫做 JSX 的语言:
React.js
的模板语言
一种静态类型的编程语言,可编译为 javascript。
这两种语言就像XML和C++一样不同。
您正在寻找的 JSX 来自这里:https://github.com/facebook/react and can be installed via npm from here: https://www.npmjs.com/package/react-tools
JSX 编程语言不会编译 React JSX 模板。