Мне действительно нужно, чтобы Babel или другие транспиляторы использовали ES6 с React?

Мне действительно нужно, чтобы Babel или другие транспиляторы использовали ES6 в React?

Я смотрел диаграмму https://kangax.github.io/compat-table/es6/

Похоже, мой текущий браузер Chrome (последняя стабильная версия) поддерживает почти все функции ES6...

Если я могу использовать ES6 без Babel, как я должен это делать?

Ответы

Ответ 1

Если вы хотите:

  • используйте modulesrequire() или import ...)
  • использовать JSX
  • поддержка большого количества браузеров
  • используйте более сложные функции (async/await), некоторые еще в предложениях (decorators, свойства класса..)

Вы должны использовать Babel, чтобы быть уверенным, что каждый сможет запустить ваш код, иначе вы сможете без него развиваться.

Ответ 2

Абсолютно можно и действительно использовать ES6 W/O babel. Все основные браузеры поддерживают подавляющее большинство функций изначально (см. CanIUse.com), на самом деле единственной важной функцией, не поддерживаемой, является импорт/экспорт модулей.

Для этого вам все равно придется вручную импортировать модули в правильном порядке, используя теги script в HTML. Только клиентская сторона (Node нуждается в модулях).

Однако имейте в виду, что это хорошо для разработчиков, но в процессе производства вам нужно будет объединить и свести все JS в один модуль в любом случае, поэтому использование инструментальной панели Babel/Webpack или Babel/Browserify может в конечном итоге быть там, где вы в конечном итоге.

Ответ 3

Без babel вы получаете совместимость с диаграммой, к которой вы привязались. Но имейте в виду, если вы хотите использовать JSX, вы захотите использовать babel, чтобы перекрыть это.