JSX против ES6/ES2015

В моем проекте я использую React и Babel, поэтому я использую некоторые функции ES6, но в основном те, которые используются React. Webstorm дает мне возможность отмечать мой синтаксис как ES6 или JSX Harmony, и я запутался.

Я думаю, что знаю, что такое ES6/ES2015 и как использовать его с компилятором, например. Бабель.

Идентификатор жесткой части JSX/JSX Harmony. Я знаю, что React использует "JSX", но:

  • Это тот же JSX, что и здесь? Если нет, то какой JSX означает параметр JSX Harmony в Webstorm?

  • Я видел страницу совместимости, упомянутую здесь, и знаю, что JSX Transformer поддерживает только небольшую часть ES6, но также, очевидно, что Babel поддерживает JSX как дополнение для поддержки ES6, поэтому JSX, похоже, больше, чем подмножество ES6... Если да, то какие функции JSX React или JSX Harmony не входят в спецификации ES6?

EDIT:

Что касается вопроса 1, я уверен, это две совершенно разные вещи. Но что такое JSX Harmony?

ИЗМЕНИТЬ 2:

Чтобы ответить на мой собственный вопрос, Webstorm JSX Harmony относится, скорее всего, к синтаксису, поддерживаемому React JSX Compiler с флагом --harmony, добавив немного поддержки ES6.

Ответы

Ответ 1

  • Нет, это не тот JSX, о котором вы говорили. Это этот.

    JSX является расширением синтаксиса, подобным XML, для ECMAScript без каких-либо определенных семантика. Он НЕ предназначен для использования двигателями или браузерами.

  • JSX не намерен передавать ES6-функции ES5, поэтому он реализует только некоторые из наиболее полезных функций, которые могут помочь в коде шаблонов.

    Если вы хотите использовать ES6 сегодня, вы должны использовать Babel (предпочтительно) или Traceur, чтобы передать код на ES5, а затем вы можете использовать большинство уже доступных функций. Если вы хотите еще более мощный транспилятор, который также имеет определения типов, вы можете взглянуть на Typescript.

Ответ 2

Нет, это не тот же jsx. Есть два langauges, называемых JSX, о которых я знаю:

  • Язык шаблонов для React.js

  • Статически типизированный язык программирования, который компилируется до javascript.

Эти два языка отличаются от XML и С++.

JSX, который вы ищете, находится здесь: https://github.com/facebook/react и может быть установлен через npm отсюда: https://www.npmjs.com/package/react-tools

Язык программирования JSX не будет компилировать шаблоны React JSX.