React Native使用是否需要或导入?

时间:2016-05-17 03:17:52

标签: react-native

React Native使用require还是import

我所能找到的只是使用require()的旧教程,但是当我运行react-native init时,我得到的项目使用import。这是由于最近React Native的变化吗?

主要区别是什么?

3 个答案:

答案 0 :(得分:21)

是的,最新的React Native教程和示例使用新的import语法。

https://facebook.github.io/react-native/docs/tutorial.html

就CommonJS(require)和ES6模块(导入)之间的差异而言,这里有一些很好的答案:

Using Node.js require vs. ES6 import/export

我认为大多数人更喜欢新的ES6语法。但是目前没有JS引擎实现ES6模块,因此需要通过ES6转换器(例如Babel)将其转换为require语句。 React Native设置为开箱即用,因此您可以开始使用import,它应该可以正常工作。

答案 1 :(得分:7)

主要区别在于,import是ECMAScript 6语法而require是ECMAScript 5.两者都是可互换的,但import有一个很好的重命名语法:export { MY_CONST as THE_CONST, myFunc as theFunc };

答案 2 :(得分:4)

React Native现在使用Babel for" modules"汇编(doc)。如果脚手架中包含create-react-native-app的应用,位于文件夹node_modules中,则the Babel plugin名为

babel-plugin-transform-es2015-modules-commonjs

,在整个应用中引用。

顾名思义,此插件只是将ES2015模块语法转换为CommonJS。

对于主要差异,我喜欢this answer出现在另一篇文章中。