2016-04-05 73 views
1

我是React-Native中的新成员,我在教程中面对两个不同的(对我来说)说明。你能解释一下他们之间的区别吗?有什么区别?你能解释一下这个语法吗?

1) var React = require('react-native');

VS

进口反应,{ AppRegistry, 元器件, 样式表 文本, 查看 }从 '反应天然';

2) var ReactComponent = React.createClass({...});

VS

类ReactComponent扩展组件{}

和实际反应是母语的最佳做法? - 哪种变体更好用,为什么?无处不在写的是为反应原生命名的变量“React”。为什么我不能用另一个词命名它(模拟器说它找不到变量React)?

回答

3

在这两个示例中,第一个选项是过去写入的方式,而第二个选项是引入了一些新内容的“新”ES6语法。这就是为什么您会使用第一种语法找到较早的文档,而较新的文档可能会使用新的ES6标准。当我刚开始时,它也让我困惑不已。

如果你有兴趣,你可以ES6模块系统在这里读了起来:http://www.2ality.com/2014/09/es6-modules-final.html

据我知道你可以使用旧的(< = ES6)及新ES6语法可以互换,但是从最佳实践观点我会坚持你的代码,最好是新标准。

+0

所以,据我所知,对于第二个选择:我将库中的括号内的东西导入变量“React”,对吗?第二种选择是更好的使用,因为它是新的语法? –

+1

是的,你导入完整的模块;然后在括号内需要每个子模块。 有关更多信息,请参见https://facebook.github.io/react-native/docs/javascript-environment.html和https://babeljs.io/docs/learn-es2015/#modules –

相关问题