Мне действительно нужно, чтобы Babel или другие транспиляторы использовали ES6 с React?
Мне действительно нужно, чтобы Babel или другие транспиляторы использовали ES6 в React?
Я смотрел диаграмму https://kangax.github.io/compat-table/es6/
Похоже, мой текущий браузер Chrome (последняя стабильная версия) поддерживает почти все функции ES6...
Если я могу использовать ES6 без Babel, как я должен это делать?
Ответы
Ответ 1
Если вы хотите:
- используйте
modules
(с require()
или 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, чтобы перекрыть это.
Ответ 4
вы можете проверить базовые настройки реакции с es6 и даже выразить здесь https://github.com/yankouskia/react-router-example