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,我最好的新朋友)而不进行转译。这甚至是一种选择吗?它应该是一种选择吗?
这完全取决于子问题:在 android 和 ios 上,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 core-js polyfill 有啥用?