使用 ReactJS 进行 ES5 开发,一个组件可以表示如下:
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 运算符时引用了实例化对象本身,有人可以告诉我使用 bind 的真正目的是什么?是不是跟React的内部机制有关?