使用ES5發展與ReactJS,組件可以表述爲如下:爲什麼在使用ES6和ReactJS時需要使用綁定?
var MyComponent = React.createClass({
alertSomething: function(event) {
alert(event.target);
},
render: function() {
return (
<button onClick={this.alertSomething}>Click Me!</button>
);
}
});
ReactDOM.render(<MyComponent />);
在這個例子中,this
引用對象本身,這是預期的自然行爲。
問題
我的問題是:
你如何使用ES6創建組件?
class MyComponent extends React.Component {
constructor(props) {
super(props);
}
alertSomething(event) {
alert(event.target);
}
render() {
return (
<button onClick={this.alertSomething.bind(this)}>Click Me!</button>
);
}
}
ReactDOM.render(<MyComponent />);
知道,在JavaScript中this
引用實例化對象本身使用new運算符的時候,有人能告訴我什麼是使用綁定的真正目的是什麼?這與React的內部機制有關?
「綁定」只是核心的JavaScript。這是事件綁定的工作原理。這不是一個React概念。 – jzm
「*這是預期的自然行爲*」 - 不。這是'React.createClass'魔術 - ES6的行爲是自然的。 – Bergi