当前位置: 首页 > article >正文

千峰React:组件使用(1)

事件

添加点击事件

function App() {
    const handClick = () => {
      console.log(123)
  }
  return (
    <>
      <button onClick={handClick}>点击</button>
    </>
  )
}
export default App

在react里也可以添加事件对象e

合成e

这个e和js里的e不太一样,是合成的e,里面也可以使用原生的js事件

一个是鼠标经过事件,一个是点击事件,显示出来也不一样

事件委托到容器

我们刚刚添加的事件实际上都会经过react添加到root上,通过事件委托的方式触发

委托的好处就是结构发生变化以后不影响事件

传参处理

箭头函数和高阶函数

高阶函数是用函数的返回值为函数操作的

箭头函数可以传多个参数

function App() {
  const handClick = (e) => {
    console.log(e)
  }
  const handleEnter = (e) => {
    console.log(e)
  }
  const handClick2 = (num) => {
    return () => {
      console.log(num)
    }
  } //函数调用完返回值还是一个函数,是一种高级用法
  const handClick3 = (num, e) => {
    console.log(num, e)
  }//箭头函数传参
  return (
    <>
      <button onClick={handClick} onMouseEnter={handleEnter}>
        点击1
      </button>
      <button onClick={handClick2(123)}>点击2-传参</button>
      <button onClick={(e) => handClick3(123, e)}>点击3-箭头函数</button>
    </>
  )
}
export default App

实操更推荐箭头函数的使用,可以少出bug

箭头函数可以灵活的控制传不传参,传参就写箭头,不传就不写箭头;高阶函数的用法做不到想不传参就不传参

根据不同的条件渲染不同内容

条件运算符、短路运算

如果你想把对象、函数这类在结构上渲染不出来的内容渲染出来,那就使用JSON.stringfy()

如果是其他类型可以使用{undefined+‘’}

function App() {
  return (
    <div>
      {function () {} + ''}
      <br />
      {null + ''}
      <br />
      {undefined + ''}
      <br />
      {JSON.stringify({ username: '荷叶饭' })}
    </div>
  )
}
export default App

妈的写了三千字的博客没保存cnm


http://www.kler.cn/a/558346.html

相关文章:

  • 学习经验分享【39】YOLOv12——2025 年 2 月 19 日发布的以注意力为核心的实时目标检测器
  • 多人协同创作gitea
  • King3399(ubuntu文件系统)串口功能测试
  • 通过Selenium实现UI自动化校验输入的数据是否完整有效方式
  • 用C++实现一个简单的算法:快速排序(QuickSort)
  • 如何在Pycharm等Terminal中获取当前的环境变量信息
  • Image Downloader下载文章图片的WordPress插件
  • Golang连接使用SqlCipher
  • 探索与Cursor协作创建一个完整的前后端分离的项目的最佳实践
  • Vue 实现通过URL浏览器本地下载 PDF 和 图片
  • 最新版本Exoplayer(MediaX)实现K歌原伴唱包括单音轨和双音轨
  • 网络安全运维服务手册 运维网络安全相关知识
  • 输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路
  • 【Golang学习之旅】分布式任务队列(使用 RabbitMQ / Kafka)
  • 洛谷P9241 [蓝桥杯 2023 省 B] 飞机降落
  • LeetCode 236.二叉树的最近公共祖先
  • Dfs分布式文件存储
  • MySQL 使用 Performance Schema 定位和解决慢 SQL 问题
  • 2025年Java高级工程师面试题精选:30道高频问题深度解析
  • 宝塔扩容——阿里云如何操作