據this通天文檔,使用ES6 +用正確的方式作出反應是這樣的初始組件:在構造函數中定義狀態還是使用屬性初始值設定項更好?
class Video extends React.Component {
static defaultProps = {
autoPlay: false,
maxLoops: 10,
}
static propTypes = {
autoPlay: React.PropTypes.bool.isRequired,
maxLoops: React.PropTypes.number.isRequired,
posterFrameSrc: React.PropTypes.string.isRequired,
videoSrc: React.PropTypes.string.isRequired,
}
state = {
loopsRemaining: this.props.maxLoops,
}
}
但一些官方的例子,像丹·阿布拉莫夫自己React DnD模塊,使用ES6 +,但仍然定義內的狀態構造函數:
constructor(props) {
super(props);
this.moveCard = this.moveCard.bind(this);
this.state = {
// state stuff
}
}
現在丹阿布拉莫夫,是一個顯著貢獻者反應,大概知道他可以在構造函數外定義狀態,但仍選擇只在構造函數中做到這一點。
所以我只是想知道哪種方式更好,爲什麼?
沒有什麼不好或好,它們是等價的,它是一個優先事項 –
類屬性是一個**建議**。它們不是** ES7的一部分。請至少閱讀標籤說明:[tag:ecmascript-7]。 –