【发布时间】:2018-05-17 08:17:44
【问题描述】:
最近我开始学习 ReactJS,因此开始学习 ES6。我对 ES5 很熟悉,但有些事情对我来说不是很清楚。
示例 1:方法语法
以下两种方法有什么区别?
export class InvoiceForm extends React.Component {
methodName1() {
}
methodName2 = () => {
};
}
示例 2:外部的类属性
class Greeting extends React.Component {
render() {
return (
<h1>Hello, {this.props.name}</h1>
);
}
}
Greeting.propTypes = {
name: PropTypes.string
};
propTypes 在课堂外。但为什么?我来自python,对于我来说,以下更正确
class Greeting extends React.Component {
static propTypes = {
name: PropTypes.string
}
render() {
return (
<h1>Hello, {this.props.name}</h1>
);
}
}
【问题讨论】:
-
在你的两个例子中,只有第一个 case 实际上是有效的 ES6 JavaScript,因为你不能直接在
class { ... }中分配属性(无论它们是否是方法)。 -
这是一个关于类属性提案的问题(因为它只是一个提案,所以无法回答)
标签: javascript ecmascript-6 ecmascript-5