我刚刚开始使用 React Native 并习惯了 JSX 语法。这就是我要说的吗?还是我在谈论 TypeScript?或者…… ES6?反正...
我见过这个:
const { foo } = this.props;
在类函数中。花括号的用途是什么,使用它们和不使用它们有什么区别?
我刚刚开始使用 React Native 并习惯了 JSX 语法。这就是我要说的吗?还是我在谈论 TypeScript?或者…… ES6?反正...
我见过这个:
const { foo } = this.props;
在类函数中。花括号的用途是什么,使用它们和不使用它们有什么区别?
它是解构赋值。
解构赋值语法是一种 JavaScript 表达式,可以将数组中的值或对象中的属性解包为不同的变量。
示例(ES6):
var person = {firstname: 'john', lastname: 'doe'};
const firstname = person.firstname;
const lastname = person.lastname;
// same as this
const { firstname, lastname } = person;
您可以在MDN 上找到更多信息
编辑:对于熟悉 Python 语言的开发人员来说,与 Python 解包语法进行比较可能会很有趣。Python2.7:
>>> _tuple = (1, 2, 3)
>>> a, b, c = _tuple
>>> print(a, b, c)
(1, 2, 3)
使用 Python3 的新功能,如PEP 3132,您还可以执行以下操作:
>>> _range = range(5)
>>> a, *b, c = _range
>>> print(a, b, c)
0 [1, 2, 3] 4
增加了例子,因为已经知道其他语言的类似方法可以更快地掌握JS思想。
是的,这是 ECMASCRIPT 6 的解构赋值功能
例如 :
const { createElement } = React
const { render } = ReactDOM
const title = createElement('h1', {id: 'title', className: 'header'}, 'Hello World')
render(title, document.getElementById('react-container'))
在这里^
React == {
cloneElement : function(){ ... },
createElement : function(){ ... },
createFactory : function(){ ... },
... }