React Native使用require
还是import
?
我所能找到的只是使用require()
的旧教程,但是当我运行react-native init
时,我得到的项目使用import
。这是由于最近React Native的变化吗?
主要区别是什么?
答案 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出现在另一篇文章中。