Javascript 我真的需要Babel或其他Transpiler使用ES6和React吗?

Javascript 我真的需要Babel或其他Transpiler使用ES6和React吗?,javascript,reactjs,ecmascript-6,babeljs,transpiler,Javascript,Reactjs,Ecmascript 6,Babeljs,Transpiler,我真的需要Babel或其他Transpiler在React中使用ES6吗 我在看图表 似乎我当前的浏览器Chrome(最新稳定版本)支持几乎所有ES6功能 如果我可以在没有Babel的情况下使用ES6,我应该怎么做?没有Babel,您可以获得链接到的图表的兼容性。但请记住,如果您想使用JSX,您需要使用babel来传输它。如果您想: 使用模块(使用require()或导入…) 使用JSX 支持多种浏览器 使用更高级的功能(),一些仍在建议中(,…) 您必须使用Babel以确保每个人都能运行您

我真的需要Babel或其他Transpiler在React中使用ES6吗

我在看图表

似乎我当前的浏览器Chrome(最新稳定版本)支持几乎所有ES6功能


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

没有Babel,您可以获得链接到的图表的兼容性。但请记住,如果您想使用JSX,您需要使用babel来传输它。

如果您想:

  • 使用
    模块
    (使用
    require()
    导入…
  • 使用
    JSX
  • 支持多种浏览器
  • 使用更高级的功能(),一些仍在建议中(,…)

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

绝对可以并且确实可以使用ES6而不使用Babel。所有主流浏览器都支持绝大多数本机功能(),事实上,唯一不支持的主要功能是模块的导入/导出

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


但是,请注意,这对开发人员来说是很好的,但在生产中,无论如何都需要将所有JS连接并最小化到一个模块中,因此使用Babel/Webpack或Babel/Browserify样式的工具链可能最终成为您的目标。

如果您以electron或chrome为目标;然后您可以直接使用es6。你仍然需要一个模块加载器。我所看到的关于为什么几乎所有人都应该立即开始使用Babel来完成所有事情的最好解释是:如果你的目标是使用react的现代浏览器,从技术上讲,你只需要Babel来传输JSX。虽然大玩家需要确保许多浏览器的向后兼容性,但这取决于您的目标受众,您可以节省开发时间(和金钱),并且只为现代浏览器编写程序。本机ES6将比传输代码更快。至于如何使用ES6…只需在传输之前使用它,就可以使用transform react jsx babel插件,该插件只允许转换jsx(to react.createElement()),并保持其余代码不变。这将是在浏览器中使用ES6和React的方法。但是是的,它仍然是巴别塔插件:)那怎么办?我已经试过了,它允许在你的.js中使用导入/导出,浏览器也可以导入/导出模块。当然,从2017年10月起,谷歌和Firefox支持从“filename.js”本地使用基于标准的“import{moduleName};”语法。ECMAScript现在最棒的地方是它的发展速度有多快。填隙片和Transpiler是借来的时间-例外是最终可部署应用程序的生成。将JSX与本机ES6功能进行比较会产生误导。如果您的浏览器支持ES6,那么它可以执行模块、require、async等操作。我觉得您的anwser提供了一个错误信息,即您需要一个transpiler来使用ES6。虽然信息丰富,但这是一个很好的非答案。他问如何在没有巴贝尔的情况下使用ES6。不是他是否应该。不,他问是否真的需要巴贝尔在React中使用ES6。我(2年前)回答说他需要它,特别是jsx。