使用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