如何理解这个语法? var {…} = React;
在反应原生的例子: https : //github.com/facebook/react-native
var React = require('react-native'); var { ScrollView, TouchableHighlight, Text } = React; var TouchDemo = React.createClass({ render: function() { return ( <ScrollView> <TouchableHighlight onPress={() => console.log('pressed')}> <Text>Proper Touch Handling</Text> </TouchableHighlight> </ScrollView> ); }, });
这个语法是什么意思?
var { ScrollView, TouchableHighlight, Text } = React;
我在nodejs控制台中键入它导致语法错误。 这种特殊的JavaScript语法仅适用于React Native吗?
谢谢
这是一个ECMAScript 6function的解构 。 据我所知,它不包含在任何版本的node.js或iojs中,但是可能有一个命令行标志可以用来启用它。
本文档描述了React Native支持的JavaScript环境。
ES5
- 保留字:
promise.catch(function() { });
ES6
箭头function:
<C onPress={() => this.setState({pressed: true})}
调用传播:
Math.max(...array);
class:
class C extends React.Component { render() { return <View />; } }
class C extends React.Component { render() { return <View />; } }
var {isActive, style} = this.props;
:var {isActive, style} = this.props;
迭代:
for (var element of array) { }
计算属性:
var key = 'abc'; var obj = {[key]: 10};
var key = 'abc'; var obj = {[key]: 10};
对象Consise方法:
var obj = { method() { return 10; } };
var obj = { method() { return 10; } };
对象简称:
var name = 'vjeux'; var obj = { name };
var name = 'vjeux'; var obj = { name };
Rest Params:
function(type, ...args) { }
模板:var who ='world'; var str =`Hello $ {who};`
ES7
Object Spread:
var extended = { ...obj, a: 10 };
函数尾随逗号:
function f(a, b, c,) { }