我真的需要Babel或其他的转发器来使用ES6和React吗?

时间:2016-06-25 17:08:12

标签: javascript reactjs ecmascript-6 babeljs transpiler

我真的需要Babel或其他转发器在React中使用ES6吗?

我正在查看图表https://kangax.github.io/compat-table/es6/

好像我现在的浏览器Chrome(最新稳定版)几乎支持所有ES6功能......

如果我可以使用没有Babel的ES6,我应该怎么做?

3 个答案:

答案 0 :(得分:15)

如果你想:

  • 使用modules(使用require()import ...
  • 使用JSX
  • 支持很多浏览器
  • 使用更多高级功能(async/await),其中一些功能仍在提案中(decoratorsclass properties ..)

您必须使用Babel确保每个人都能够运行您的代码,否则您可以在没有它的情况下进行开发。

答案 1 :(得分:11)

绝对可以并且确实使用ES6 W / O babel。所有主流浏览器本身都支持绝大多数功能(参见CanIUse.com),实际上唯一不支持的主要功能是模块的导入/导出。

对于这些,您仍然需要使用HTML中的脚本标记以正确的顺序手动导入模块。仅客户端(节点需要模块)。

然而,请注意这对开发没问题但是在生产中你需要连接并最小化所有JS到一个模块,所以使用Babel / Webpack或Babel / Browserify样式工具链可能最终会在你最终的位置

答案 2 :(得分:5)

如果没有babel,您将获得与您链接的图表的兼容性。但请记住,如果你想使用JSX,你会想要使用babel来解释它。