web-dev-qa-db-ja.com

JSX対ES6 / ES2015

私のプロジェクトではReactおよびBabelを使用しているため、主にReactで使用されるいくつかのES6機能を使用します。Webstormは、ES6またはJSX Harmonyとして構文をマークするオプションを提供し、混乱した。

ES6/ES2015とは何か、コンパイラで使用する方法を知っていると思います。バベル。

ハードパーツID JSX/JSX Harmony。 Reactは「JSX」を使用しますが、

  1. これは here と同じJSXですか?そうでない場合、どのJSXがWebstormのJSX Harmonyオプションを意味していますか?

  2. 私は here という互換性ページを見てきましたが、JSX TransformerはES6のごく一部しかサポートしていませんが、BabelはES6サポートの追加としてJSXをサポートしているため、JSXはES6サブセット以上のようです。 ..その場合、JSX ReactまたはJSX Harmonyのどの機能がES6仕様の一部ではありませんか?

編集:

質問1に関しては、これらはまったく異なる2つのことです。しかし、JSX Harmonyとは何ですか?

編集2:

私自身の質問に答えるために、Webstorm JSX Harmonyは、おそらくReact JSX Compiler with --harmonyフラグがオン-ES6サポートを少し追加。

19
konrad
  1. いいえ、あなたが言及したJSXではありません。 this one です。

    JSXは、セマンティクスが定義されていないECMAScriptのXMLに似た構文拡張です。エンジンやブラウザによって実装されることを意図していません。

  2. JSXはES6の機能をES5にトランスパイルするつもりはないため、テンプレートコードを支援するための最も便利な機能の一部のみを実装しています。

    今日ES6を使用したい場合は、 Babel (推奨)または Traceur を使用してコードをES5に変換する必要があります。これにより、すでに利用可能なほとんどの機能を使用できます。型定義もある、さらに強力なトランスパイラーが必要な場合は、 TypeScript をご覧ください。

10
Buzinas

いいえ、同じjsxではありません。私が知っているJSXと呼ばれる2つの言語があります:

  1. React.jsのテンプレート言語

  2. JavaScriptにコンパイルされる静的に型付けされたプログラミング言語。

2つの言語は、XMLとC++と同じくらい異なります。

探しているJSXはここからです: https://github.com/facebook/react そしてここからnpmでインストールできます: https://www.npmjs。 com/package/react-tools

JSXプログラミング言語はReact JSXテンプレートをコンパイルしません。

10
slebetman