图文并茂教你快速入门React系列03-事件

news2024/11/19 17:24:24

事件

使用 React 可以在 JSX 中添加 事件处理函数。其中事件处理函数为自定义函数,它将在响应交互(如点击、悬停、表单输入框获得焦点等)时触发。

事件处理

// 这样写:

export default function Button() {
  function handleClick() {
    alert('你点击了我!');
  }

  return (
    <button onClick={handleClick}>
      点我
    </button>
  );
}

// 或者这样写:

<button onClick={() => {
  alert('你点击了我!');
}}>

将事件处理函数作为 props 传递

function Button({ onClick, children }) {
  return (
    <button onClick={onClick}>
      {children}
    </button>
  );
}

function PlayButton({ movieName }) {
  function handlePlayClick() {
    alert(`正在播放 ${movieName}!`);
  }

  return (
    <Button onClick={handlePlayClick}>
      播放 "{movieName}"
    </Button>
  );
}

function UploadButton() {
  return (
    <Button onClick={() => alert('正在上传!')}>
      上传图片
    </Button>
  );
}

export default function Toolbar() {
  return (
    <div>
      <PlayButton movieName="魔女宅急便" />
      <UploadButton />
    </div>
  );
}

函数传递按个人喜好改名

举个栗子

function Button({ onSmash, children }) {
  return (
    <button onClick={onSmash}>
      {children}
    </button>
  );
}

export default function App() {
  return (
    <div>
      <Button onSmash={() => alert('正在播放!')}>
        播放电影
      </Button>
      <Button onSmash={() => alert('正在上传!')}>
        上传图片
      </Button>
    </div>
  );
}

事件传播(冒泡)

下面的代码自身的 onClick 将首先执行,然后父级

的 onClick 会接着执行

export default function Toolbar() {
  return (
    <div className="Toolbar" onClick={() => {
      alert('你点击了 toolbar !');
    }}>
      <button onClick={() => alert('正在播放!')}>
        播放电影
      </button>
      <button onClick={() => alert('正在上传!')}>
        上传图片
      </button>
    </div>
  );
}

在 React 中所有事件都会传播,除了 onScroll

阻止默认事件(冒泡等)使用

e.stopPropagation()

e.preventDefault()

举个栗子

function Button({ onClick, children }) {
  return (
    <button onClick={e => {
      e.stopPropagation();
      onClick();
    }}>
      {children}
    </button>
  );
}

export default function Toolbar() {
  return (
    <div className="Toolbar" onClick={() => {
      alert('你点击了 toolbar !');
    }}>
      <Button onClick={() => alert('正在播放!')}>
        播放电影
      </Button>
      <Button onClick={() => alert('正在上传!')}>
        上传图片
      </Button>
    </div>
  );
}

如果你需要捕获子元素事件,这个一般用不到哇~

<div onClickCapture={() => { /* 这会首先执行 */ }}>
  <button onClick={e => e.stopPropagation()} />
  <button onClick={e => e.stopPropagation()} />
</div>
    1. 向下传播,调用所有的 onClickCapture 处理函数。
    1. 执行被点击元素的 onClick 处理函数。
    1. 向上传播,调用所有的 onClick 处理函数。

小伙伴们,先写到这里啦,我们明天再见啦~~

大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/603753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python删除文件的方法与注意事项

Python删除文件的方法与注意事项 在Python中&#xff0c;删除文件是很常见的操作。通常&#xff0c;我们需要在程序中删除不再需要的文件&#xff0c;或者在清理本地存储空间时删除缓存文件。本文将重点介绍Python如何删除文件以及可能涉及到的注意事项。 如何删除文件 Pyth…

redis设计原理009持久化策略

目录 RDB 备份原理 优点 缺点 AOF 不能保证绝对不丢失数据 重写 流程 结论 优点 缺点 如何选择RDB和AOF 同时开启 混合模式 运行过程 数据 数据恢复 优点 缺点 优化方案 总结 RDB 通过快照&#xff08;snapshotting&#xff09;完成的&#xff0c;当符合一定…

写一个python文件,在shell脚本中运行

最近要复现论文了&#xff0c;发现代码的主函数在.py文件中&#xff0c;运行脚本是在.sh中。 要命的事&#xff0c;我不懂&#xff0c;我怎么debug。 1.新建一个pycharm项目&#xff0c;新建main.py import argparsedef get_args():parser argparse.ArgumentParser()parser…

chatgpt赋能python:Python模块的优势和局限性

Python模块的优势和局限性 引言 Python作为一门高级编程语言&#xff0c;被广泛应用于各种领域。其中&#xff0c;Python内置的模块系统&#xff0c;为Python在编程中的灵活性和可扩展性提供了很大的优势。在本文中&#xff0c;我们将探讨Python模块的优势和局限性及其对Web优…

chatgpt赋能python:用Python剔除重复内容提升SEO效果

用Python剔除重复内容提升SEO效果 SEO是指通过优化网站结构和内容&#xff0c;在搜索引擎中获得更高的排名&#xff0c;从而提升网站流量和曝光度的一种网络营销方式。网站内容是SEO工作的重要组成部分&#xff0c;而剔除重复的内容对于SEO效果的提升有着重要的作用。本文将介…

chatgpt赋能python:Python制作人机交互界面:完美融合技术和用户体验

Python 制作人机交互界面&#xff1a;完美融合技术和用户体验 随着人工智能和互联网技术的发展&#xff0c;人机交互一直是非常热门的话题。Python 作为一门功能强大&#xff0c;应用广泛的高级编程语言&#xff0c;同样在这个领域发挥了重要作用。Python 制作人机交互界面&am…

【列表迭代器和增强for循环】

列表迭代器和增强for循环 1.列表迭代器 ListIterator&#xff1a;列表迭代器 通过List集合的listIterator()方法得到&#xff0c;所以说它是List集合特有的迭代器用于允许程序员沿任一方向遍历列表的列表迭代器&#xff0c;在迭代期间修改列表&#xff0c;并获取列表中迭代器…

SAP ABAP smartforms 创建并实现调用源码(下)

SAP ABAP smartforms 创建并实现调用源码&#xff08;上&#xff09; smartforms 入门详见上一篇博文。 一&#xff1a;报表程序调用 smartforms 示例&#xff1a;报表选中一行&#xff0c;将这行机相关数据通过表单打印出来。实际例子:采购订单表&#xff0c;销售订单。 调…

低代码平台iVX

一、ivx是啥 编写复杂的代码仍然是一项具有挑战性的任务。然而&#xff0c;现在有一种令人振奋的解决方案出现了——iVX&#xff0c;这是一种创新的可视化编程语言&#xff0c;为每个人提供快速掌握的能力。 iVX 是一个 “零代码” 的可视化编程语言&#xff0c;“零代码” 是…

基于flask的web应用开发——认识@app.route

目录 0. 前言1. flask简介2. 编写你的第一个网页3. 运行效果查看4. 本节小结 0. 前言 本专栏以基于flask实现web前端&#xff0c;即制作一个自己的网页 本节学习路由装饰器app.route() 操作系统&#xff1a;Windows10 专业版 开发环境&#xff1a;Pycahrm Comunity 2022.3 …

chatgpt赋能python:Python加R:让数据科学更加高效

Python加R&#xff1a;让数据科学更加高效 在过去的几年里&#xff0c;Python和R成为数据科学领域中最受欢迎的编程语言。它们提供了丰富的库和工具&#xff0c;帮助从事数据分析和机器学习的人们更加高效地完成任务。然而&#xff0c;Python和R都有其各自的优缺点。 Python的…

代理IP基础、实际运用,以及如何获取

代理IP是指通过一个中间服务器来转发用户的网络请求&#xff0c;从而在网络上隐藏用户的真实IP地址&#xff0c;或者绕过网络限制以达到访问特定内容的目的。下面是代理IP的一些基础知识&#xff1a; 1、代理IP的分类&#xff1a;代理IP可以分为普匿代理IP、透明代理IP和高匿代…

互联网医院牌照申请的资料以及流程

随着互联网的发展&#xff0c;互联网医院逐渐成为一个热门话题&#xff0c;越来越多的医疗机构开始尝试在互联网上提供医疗服务。然而&#xff0c;想要在互联网上开展医疗服务&#xff0c;必须获得互联网医院牌照。本文将介绍互联网医院牌照申请需要的资料、条件&#xff0c;以…

算法提高-搜索-DFS之剪枝与优化

DFS之剪枝与优化 DFS之剪枝与优化AcWing 165. 小猫爬山AcWing 166. 数独AcWing 167. 木棒AcWing 168. 生日蛋糕 DFS之剪枝与优化 AcWing 165. 小猫爬山 DFS的五种剪枝方法 &#xff08;1&#xff09;优化搜索顺序 &#xff08;2&#xff09;排除等效冗余 &#xff08;3&#…

chatgpt赋能python:Python删除目录:如何在项目中正确删除文件夹?

Python 删除目录&#xff1a;如何在项目中正确删除文件夹&#xff1f; 在使用Python语言进行程序开发的过程中&#xff0c;可能会需要删除不再需要的目录&#xff0c;例如缓存和日志文件夹。然而&#xff0c;删除目录需要小心谨慎&#xff0c;避免误删除重要文件或目录。在本文…

chatgpt赋能python:Python列表自动排序

Python列表自动排序 Python是一种流行的编程语言&#xff0c;它有很多有用的内置函数和数据结构。其中一个最常用的数据结构是列表。在Python中&#xff0c;列表是一个有序的集合&#xff0c;可以存储多种类型的元素。列表不仅仅是一个数据结构&#xff0c;它还有一些有用的方…

Flink standalone 集群会话模式部署搭建

环境准备 1、Centos7集群环境搭建 2、flink-1.17.0-bin-scala_2.12.tgz 安装包&#xff0c;下载地址 规划 服务器角色iphadoop01JobManager TaskManager192.168.140.132hadoop02TaskManager192.168.140.133hadoop03TaskManager192.168.140.134 安装 1、下载 flink-1.17.0-…

【Unity3D】边缘检测特效

1 边缘检测原理 边缘检测的原理是&#xff1a;检测每个像素周围的像素亮度差&#xff0c;如果亮度差异较大&#xff0c;就将该像素识别为边缘&#xff0c;并进行边缘着色。 使用过卷积神经网络&#xff08;CNN&#xff09;的读者&#xff0c;一定知道卷积运算&#xff0c;笔者之…

储能基础知识【一】

储能基础知识【一】 1、基础名词、概念、对应的英文单词、系统组成2、储能电池系统组成图3、性能指标 1、基础名词、概念、对应的英文单词、系统组成 电池储能系统&#xff08;Battery Energy Storage System, BESS&#xff09;&#xff1b;电芯&#xff08;Battery Cell&…

总结887

学习目标&#xff1a; 周目标&#xff1a;强化强3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测&#xff0c;一套数学模拟题 每日必复习&#xff08;5分钟&#xff09; 复习第四讲方程组 学习内容&#xff1a; 暴力英语&#xff1a;背诵《happiness is a journey》每日…