ES6 和 ES7 功能在 react-native 中没有 babel 转译?

Posted

技术标签:

【中文标题】ES6 和 ES7 功能在 react-native 中没有 babel 转译?【英文标题】:ES6 and ES7 features without babel transpiling in react-native? 【发布时间】:2018-06-04 16:38:37 【问题描述】:

我很想使用 javascript ES6 和 ES7 语法(尤其是 async/await,我最好的新朋友)而不进行转译。这甚至是一种选择吗?它应该是一种选择吗?

这完全取决于子问题:在 androidios 上,react-native 有效地使用了哪些 Javascript 引擎?它是从设备本身获取的吗? (在这种情况下,转译是唯一的选择……)还是由 React Native 提供?

【问题讨论】:

ES7 (ES2016) 只引入了两个新特性。 async/await 是 ES2017 的一部分。 非常正确,它从未进入 2016 年。将不得不在版本名称后开始使用 +... 【参考方案1】:

您可以在 React Native 中愉快地使用 async/await(实际上,从 0.10 开始,您已经可以使用一段时间了)。至于在不编译的情况下使用它,这是一个稍微棘手的问题。 React Native 只需要 Node v6 及更高版本,因此显然需要通过 Webpack/Babel 进行相当多的转译,以确保它仍然适用于旧版本的 Node。

设备上部署的环境是JavaScriptCore(更多详细信息请参见JavaScript Environment)。在调试时,您正在通过 Chrome 使用 V8。

【讨论】:

以上是关于ES6 和 ES7 功能在 react-native 中没有 babel 转译?的主要内容,如果未能解决你的问题,请参考以下文章

(_.merge in ES6/ES7)Object.assign 不覆盖未定义的值

怎么知道浏览器支持es6 es7 es8查询

导入 ES6 和 ES7 core-js polyfill 有啥用?

javascript Javascript - ES6和ES7

ES6/ES7/ES8常用特性和新特性

ES6/ES7/ES8常用特性和新特性