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

IT技术 javascript reactjs ecmascript-6 babeljs transpiler
2021-05-10 11:31:23

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

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

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

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

3个回答

如果你想:

  • 使用modules(与require()import ...
  • 利用 JSX
  • 支持很多浏览器
  • 使用更高级的特性(async/await),一些仍在提案中(装饰器类属性..)

你必须使用 Babel 来确保每个人都能运行你的代码,否则你可以不用它进行开发。

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

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

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

如果没有 babel,您将获得链接到的图表的兼容性。但是请记住,如果您想使用 JSX,您将需要使用 babel 来转译它。