【发布时间】:2015-05-18 05:54:12
【问题描述】:
这个语句怎么赋值?
var { AppRegistry, View, StyleSheet, ListView } = React;
【问题讨论】:
标签: javascript reactjs react-native
这个语句怎么赋值?
var { AppRegistry, View, StyleSheet, ListView } = React;
【问题讨论】:
标签: javascript reactjs react-native
这是 ECMAScript 6 中的 destructuring assignment。
var s = { a: 1, b: 2 }
var { a, b } = s;
将1 分配给a,将2 分配给b。
推测React 是一个具有AppRegistry、View 等属性的对象,并且它们的值被分配给具有相同名称的变量。
在给出这个答案的那一刻,这种语法还没有被广泛使用。
【讨论】:
正如 Amadan 所说,这是 ES6 中的一个新特性。 ES6 即将发布,所有现代浏览器最终都会支持它。很多项目使用Babel配合webpack将代码编译成ES5语法,这样就可以在任何浏览器上使用了。
React Native 有自己的转换,支持部分 ES6:
https://facebook.github.io/react-native/docs/javascript-environment.html#content
因此,如果您使用 Babel 和 webpack 的打包程序,则不需要它们。在未来的版本中,facebook 也可能会使用 Babel。
【讨论】: