事件处理
Handling Events
React 元素的事件处理和 DOM 元素很相似,但是有一点语法上的不同:
React 事件的命名采用小驼峰式,而不是纯小写
使用 JSX 语法时你需要传入一个函数作为事件处理,而不是一个字符串
在 React 你不能通过返回 false 的方式阻止默认行为,你必须显示的使用 preventDefault
在这里,e 是一个合成事件
```html
Activate Lasers
```jsx harmony
<button onClick={activateLasers}>
Activate Lasers
</button>
function ActionLink() {
function handleClick(e) {
e.preventDefault();
console.log('the link was clicked.')
}
return (
<a href="#" onClick={handleClick}>
CLick me
</a>
)
}在使用 React 时,你一般不需要使用 addEventListener 为已创建的 DOM 元素添加监听器,事实上,你只需要在该元素初始渲染的时候添加监听器即可
必须谨慎使用 JSX 回调函数中的 this,在 JavaScript 中,class 的方法默认不会绑定 this。如果你忘记绑定 this 并把它传入了 onClick 当你调用这个函数的时候 this 的值为 undefined
这不是 React 特有的行为,这其实与 JavaScript 函数的工作原理有关。通常情况下,如果你没有在方法后面添加 (),你应该为这个方法绑定 this
```jsx harmony
// 为了在回调中使用 this,这个绑定是必不可少的 this.handleClick = this.handleClick.bind(this);
最后更新于
这有帮助吗?