1.绑定在React元素上的事件与绑定在DOM元素上的事件非常相似,但是也有一个不同的地方
React事件使用驼峰命名法命名
//在HTML中
<button οnclick='handle()'></button>
//在React中
<button onClick={handle}></button>
在React中不能通过使用return false阻止事件的默认行为,必须显示的调用event.preventDefault()去阻止默认行为
function ActionLink(){
function handle(event){
event.preventDefault();
}
return <a href='#' onClick={handle}>link me</a>
}
2.React中的event。
react合成了事件对象,所以不需要考虑跨浏览器兼容的问题。在React中,通常当元素被创建之后,你不需要调用addEventListener
为元素添加事件的监听器,而是在元素最初被渲染的时候添加监听器
3.当使用类形式创建一个组件,事件处理程序通常是作为对象中的一个方法。
class ToggleButton extend React.Component{
constructor(props){
super(props);
this.state = {swtich:false};
// 为了在handleClick中还能访问到this
this.handleClick=this.handleClick.bind(this);
},
render(){
return <button onClick={this.handelClick}>switch</button>
},
handleClick(event){
this.setState((prevStart) => {
return {swtich:!prevStart.swtich}
});
}
}