JSX vs ES6/ES2015

kon*_*rad 19 javascript webstorm ecmascript-6 react-jsx

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

我想我知道ES6/ES2015是什么以及如何在编译器中使用它,例如.巴贝尔.

难题部分是JSX/JSX Harmony.我知道React使用"JSX"但是:

  1. 这和这里的 JSX一样吗?如果不是,WebXorm中的JSX Harmony选项意味着哪个JSX?

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

编辑:

至于问题1,我确定,这是两个完全不同的事情.但是什么是JSX Harmony呢?

编辑2:

为了回答我自己的问题,Webstorm JSX Harmony最有可能提到React JSX Compiler支持的语法,带有--harmony标志 - 增加了一点ES6支持.

Buz*_*nas 10

  1. 不,这不是你提到的JSX.就是这个.

    JSX是ECMAScript的类似XML的语法扩展,没有任何定义的语义.它不是由引擎或浏览器实现的.

  2. JSX并不打算将ES6功能转换为ES5,因此,它只实现了一些最有用的功能来帮助模板化代码.

    如果您今天要使用ES6,则必须使用Babel(首选)或Traceur将代码转换为ES5,然后您可以使用已有的大部分功能.如果你想要一个更强大的转换器,它也有类型定义,你可以看一下Typescript.


sle*_*man 10

不,这不是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模板.