React ES6類中沒有自動綁定。因此,開發商有兩種選擇焉能結合上下文:React(ES6類)中綁定上下文的哪種方法更好
1)在構造函數中
export class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myFunction = this.myFunction.bind(this);
}
myFunction() {
// do something
}
render() {
return (
<div onClick={this.myFunction}></div>
);
}
}
2)聯方法
export class MyComponent extends React.Component {
constructor(props) {
super(props);
}
myFunction() {
// do something
}
render() {
return (
<div onClick={this.myFunction.bind(this)}></div>
);
}
}
哪種方法更高效地工作?
這是更多的風格偏好,大多數人使用第一種方法,因爲它清理了代碼 –
同意@TylerIguchi ...我更喜歡第一個更清潔的外觀,但都不是更高效「 – erichardson30
如果你有多個監聽器綁定一個函數,直接在元素上使用'.bind(this)'可能會變得單調乏味並且難以管理,在這一點上最好在構造函數中進行綁定。我認爲更好的做法是允許在構造函數中綁定並按照標準進行綁定。 –