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

简洁大方网站模板点赞分享打赏 wordpress

简洁大方网站模板,点赞分享打赏 wordpress,哪家公司做网站开发做得比较好,网站等保测评怎么做系列回顾: 在前几篇文章中,我们已经学会了如何使用 State 管理组件的内部数据,以及如何通过 Props 实现父子组件之间的通信。我们的组件现在已经有了“数据”和“外观”。但是,它还像一个只能看的“模型”,无法与用户进…

系列回顾:
在前几篇文章中,我们已经学会了如何使用 State 管理组件的内部数据,以及如何通过 Props 实现父子组件之间的通信。我们的组件现在已经有了“数据”和“外观”。但是,它还像一个只能看的“模型”,无法与用户进行互动。用户点击了按钮,页面却毫无反应,这可不行!

欢迎来到React学习的第四站!

今天,我们的目标非常简单直接:让我们的React组件能够“听懂”用户的操作,比如鼠标点击、键盘输入等。我们将以最常见的“按钮点击”为例,来学习React中的事件处理 (Event Handling)

React事件处理的两个小规则

在React中给元素绑定事件,和在原生HTML中非常相似,但有两个主要区别,记住它们就行:

  1. 事件名使用驼峰命名法 (camelCase)。

    • 在HTML中是 onclick
    • 在React中是 onClick
    • 同理,onchange 变成 onChangeonsubmit 变成 onSubmit
  2. 事件处理函数需要用花括号 {} 包起来,传递的是一个函数本身,而不是函数调用的结果。

    • HTML中是:<button onclick="handleClick()"> (传递字符串)
    • React中是:<button onClick={handleClick}> (传递函数引用)

理解了这两点,你已经掌握了React事件处理的80%!


实战一:一个会打招呼的按钮

让我们从一个最简单的例子开始:点击一个按钮,在浏览器的控制台打印出 “Hello, React!”。

第一步:准备 App.jsx

老规矩,我们先清空 src/App.jsx 文件,写入一个基础的架子:

import './App.css';function App() {// 1. 在组件内部定义一个事件处理函数const sayHello = () => {console.log('Hello, React!');};return (<div><h1>React 事件处理入门</h1>{/* 2. 使用 onClick 将函数绑定到按钮上 */}<button onClick={sayHello}>点我打个招呼</button></div>);
}export default App;

代码解释:

  1. 我们定义了一个名为 sayHello 的箭头函数。这个函数就是我们的事件处理函数 (Event Handler),它负责执行点击后需要做的事情。
  2. <button> 元素上,我们使用了 onClick={sayHello}。注意,这里传递的是 sayHello 这个函数本身,后面没有加小括号 ()。如果你写成了 onClick={sayHello()},那么在组件渲染的时候这个函数就会被立即执行,而不是等到点击时才执行,这是初学者最容易犯的错误之一。

第二步:测试效果

保存文件,打开浏览器。

  1. F12 键(或右键 -> 检查)打开开发者工具,并切换到 Console (控制台) 面板。
  2. 现在,点击页面上的“点我打个招呼”按钮。
  3. 看看控制台,是不是打印出了 “Hello, React!”?

太棒了!你已经成功绑定了第一个React事件。


实战二:事件处理与State的结合

光在控制台打印信息还不够好玩。事件处理最强大的地方在于,它可以和我们之前学的 State 结合起来,去改变页面的内容。

让我们把第二篇的计数器案例,用更规范的事件处理函数方式来重写一遍。

修改 App.jsx:

import { useState } from 'react'; // 别忘了引入 useState
import './App.css';function App() {// 使用 useState 创建一个 state 变量 countconst [count, setCount] = useState(0);// 定义增加计数的事件处理函数const handleIncrease = () => {setCount(count + 1);};// 定义减少计数的事件处理函数const handleDecrease = () => {setCount(count - 1);};return (<div><h1>事件与State结合的计数器</h1><h2>当前计数值: {count}</h2><button onClick={handleIncrease}>增加 +1</button><button onClick={handleDecrease}>减少 -1</button></div>);
}export default App;

代码解释:

  • 我们创建了两个事件处理函数 handleIncreasehandleDecrease
  • 它们分别在被调用时,通过 setCount 函数去更新 count 这个State。
  • 当State更新后,React会自动重新渲染组件,页面上的 {count} 就会显示出最新的值。

现在,你的计数器不仅可以增加,还可以减少了!这证明了事件处理与State是驱动React应用交互的核心动力。


进阶:如何在事件处理函数中传递参数?

有时候,我们需要在触发事件时,给处理函数传递一些额外的信息。比如,我们想让一个按钮点击后,计数器不是+1,而是+5。

直接写 onClick={handleIncrease(5)} 是错误的,因为它会导致函数在渲染时就执行。正确的做法是使用一个箭头函数来包裹我们的调用。

修改 App.jsx:

import { useState } from 'react';
import './App.css';function App() {const [count, setCount] = useState(0);// 修改事件处理函数,让它能接收一个参数const changeCount = (amount) => {setCount(count + amount);};return (<div><h1>带参数的事件处理</h1><h2>当前计数值: {count}</h2>{/* 使用箭头函数来传递参数 */}<button onClick={() => changeCount(1)}>增加 +1</button><button onClick={() => changeCount(-1)}>减少 -1</button><button onClick={() => changeCount(5)}>直接 +5</button></div>);
}export default App;

代码解释:

  • onClick={() => changeCount(5)}:我们传递给 onClick 的是一个新的、匿名的箭头函数 () => changeCount(5)
  • 这个匿名函数本身并不会被立即执行。
  • 只有当按钮被点击时,这个匿名函数才会被调用,然后它再去执行内部的 changeCount(5)

这样,我们就巧妙地实现了在事件触发时传递自定义参数的目的。


总结与思考

今天,我们为应用装上了“耳朵”,让它能够响应用户的操作。核心知识点回顾:

  1. React事件命名规则: 使用驼峰命名法,如 onClick, onChange
  2. 绑定事件处理函数: 使用花括号{},传递函数本身,如 onClick={myFunction}
  3. 事件处理与State结合: 在事件处理函数中调用 setState 函数,是实现UI交互更新的核心模式。
  4. 传递参数: 使用匿名箭头函数包裹,如 onClick={() => myFunction(myArgument)}

我们已经掌握了单个组件的交互逻辑。在实际开发中,我们常常需要根据一堆数据来生成一长串的列表,比如一个商品列表、一个朋友列表。手动一个一个写组件肯定是不现实的。

在下一篇文章 《React动态渲染:如何用map循环渲染一个列表(List)?》 中,我们将学习如何利用JavaScript的数组方法,根据数据动态地、批量地创建组件,这是构建数据驱动应用的关键一步。我们下期再会!

http://www.dtcms.com/wzjs/814321.html

相关文章:

  • 网站内容如何优化做一份seo网站诊断
  • 如何加强企业网站建设 论文6wordpress导航字体颜色
  • 网站后台管理系统使用方法wordpress 优惠插件
  • 北京网站制作闪快网站如何在工信部备案信息
  • 惠州网站建设公司哪家好做网站 用什么语言
  • 网站开发背景400字六安网站制作公司排名
  • 做编程网站有哪些方面引流渠道推广
  • 淘宝网做宝贝详情用哪个网站做网站推广的难点、
  • 潞城市网站建设公司建网站好还是开天猫好
  • 网站个性化某某公司网络营销策划书
  • 小游戏网站建设自己怎么建购物网站
  • 常见c2c网站有哪些下载游戏的软件应用
  • 网站建设 gei l f学院网站建设工作会议
  • 信誉好的合肥网站建设内容管理系统设计
  • 搭建公司网站的作用d代码做网站
  • 网站的权限设置html编辑器手机版
  • 网页策划书 网站建设定位外贸企业建网站
  • 网站建设推广优化招聘模板网站做电商资质吗
  • 黄骅港怎么读googleseo優化
  • 网站在国内服务器在国外深圳软件公司平均薪资排行榜
  • 江西省建设工程造价管理局网站扬州市规划建设局网站
  • 娄底市建设网站做视电影网站赚钱吗
  • 做网站优化多少钱济南seo优化公司
  • 南宁网站建设加q479185700数据库与网站
  • 订餐网站开发方案怎么做简单网站首页
  • 如何建立一个论坛网站wordpress博客建站教程
  • 关于做公司官方网站域名申请局域网如何建网站
  • 网站建设优化服务精英网站优化排名工具
  • 济源网站维护dede网站地图不显示文章列表
  • 开封美食网站建设规划衡水网站建设怎么做