- ReactJS 教程
- ReactJS - 主页
- ReactJS - 简介
- ReactJS - 安装
- ReactJS - 架构
- ReactJS - 创建 React 应用程序
- ReactJS-JSX
- ReactJS - 组件
- ReactJS - 样式
- ReactJS - 属性(props)
- ReactJS - 事件管理
- ReactJS - 状态管理
- ReactJS - Http 客户端编程
- ReactJS - 表单编程
- ReactJS - 路由
- ReactJS-Redux
- ReactJS - 动画
- ReactJS - 测试
- ReactJS - CLI 命令
- ReactJS - 构建和部署
- ReactJS - 示例
- ReactJS 有用的资源
- ReactJS - 快速指南
- ReactJS - 有用的资源
- ReactJS - 讨论
ReactJS - 事件管理
事件管理是 Web 应用程序的重要功能之一。它使用户能够与应用程序交互。React 支持 Web 应用程序中可用的所有事件。React 事件处理与 DOM 事件非常相似,几乎没有什么变化。让我们在本章中学习如何在 React 应用程序中处理事件。
让我们看看 React 组件中处理事件的逐步过程。
定义一个事件处理程序方法来处理给定的事件。
log() { cosole.log("Event is fired"); }
React 提供了一种使用 lambda 函数来定义事件处理程序的替代语法。lambda 语法是 -
log = () => { cosole.log("Event is fired"); }
如果您想知道事件的目标,请在处理程序方法中添加参数e 。React 会将事件目标详细信息发送到处理程序方法。
log(e) { cosole.log("Event is fired"); console.log(e.target); }
另一种 lambda 语法是 -
log = (e) => { cosole.log("Event is fired"); console.log(e.target); }
如果您想在事件期间发送额外的详细信息,请添加额外的详细信息作为初始参数,然后添加事件目标的参数(e) 。
log(extra, e) { cosole.log("Event is fired"); console.log(e.target); console.log(extra); console.log(this); }
另一种 lambda 语法如下 -
log = (extra, e) => { cosole.log("Event is fired"); console.log(e.target); console.log(extra); console.log(this); }
在组件的构造函数中绑定事件处理程序方法。这将确保事件处理程序方法中的可用性。
constructor(props) { super(props); this.logContent = this.logContent.bind(this); }
如果事件处理程序是用替代 lambda 语法定义的,则不需要绑定。此关键字将自动绑定到事件处理程序方法。
设置特定事件的事件处理程序方法,如下所示 -
<div onClick={this.log}> ... </div>
要设置额外的参数,请绑定事件处理程序方法,然后将额外的信息作为第二个参数传递。
<div onClick={this.log.bind(this, extra)}> ... </div>
替代 lambda 语法如下 -
<div onClick={this.log(extra, e)}> ... </div>
这里,