React 事件

就像 HTML DOM 事件一样,React 可以根据用户事件执行操作。

React 具有与 HTML 相同的事件:单击、更改、鼠标悬停等。


添加事件

React 事件是用驼峰式语法编写的:

onClick 而不是 onclick

React 事件处理程序写在花括号内:

onClick={shoot} 而不是 onClick="shoot()"

React:

<button onClick={shoot}>Take the Shot!</button>

HTML:

<button onclick="shoot()">Take the Shot!</button>

实例:

shoot 函数放在 Football 组件中:

function Football() {
  const shoot = () => {
    alert("Great Shot!");
  }

  return (
    <button onClick={shoot}>Take the shot!</button>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Football />);

运行实例 »


传递参数

要将参数传递给事件处理程序,请使用箭头函数。

实例:

将 "Goal!" 作为参数发送到shoot函数,使用箭头函数:

function Football() {
  const shoot = (a) => {
    alert(a);
  }

  return (
    <button onClick={() => shoot("Goal!")}>Take the shot!</button>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Football />);

运行实例 »


React 事件对象

事件处理程序可以访问触发函数的 React 事件。

在我们的示例中,事件是 "click" 事件。

实例:

箭头函数:手动发送事件对象:

function Football() {
  const shoot = (a, b) => {
    alert(b.type);
    /*
    'b' 代表触发函数的 React 事件,在本例中为 'click' 事件
    */
  }

  return (
    <button onClick={(event) => shoot("Goal!", event)}>Take the shot!</button>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Football />);

运行实例 »

当我们在后面的章节中查看 Form 时,这会派上用场。


学习训练

练习题:

完成此语句以包含单击事件处理程序。

<button ={clicked()}>Click Me!</button>

开始练习