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

前端react入门day02-React中的事件绑定与组件

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

React中的事件绑定

React 基础事件绑定

使用事件对象参数 

传递自定义参数 

同时传递事件对象和自定义参数 

React中的组件 

组件是什么

React组件

useState 

修改状态的规则

状态不可变

修改对象状态

组件的样式处理

classnames优化类名控制 


React中的事件绑定

React 基础事件绑定

语法: on + 事件名称 = { 事件处理程序 } ,整体上遵循驼峰命名法

使用事件对象参数 

语法:在事件回调函数中设置形参e

传递自定义参数 

语法:事件绑定的位置改造 成箭头函数的写法 ,在执行clickHandler实际处理业务函数的时候传递实参
注意:不能直接写函数调用,这里事件绑定需要一个 函数引用

同时传递事件对象和自定义参数 

语法:在事件绑定的位置传递事件实参e和自定义参数,clickHandler中声明形参,注意顺序对应

React中的组件 

组件是什么

概念:一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以互相嵌套,也可以复用多次

组件化开发可以让开发者像搭积木一样构建一个完整的庞大的应用

React组件

在React中,一个组件就是 首字母大写的函数 ,内部存放了组件的逻辑和视图UI, 渲染组件只需要把组件 当成标签书写 即可

useState 

useState 是一个 React Hook(函数),它允许我们向组件添加一个 状态变量 , 从而控制影响组件的渲染结果
本质:和普通JS变量不同的是,状态变量一旦发生变化组件的视图UI 也会跟着变化 (数据驱动视图)
// useState实现一个计数器按钮
import { useState } from 'react'
function App () {// 1. 调用useState添加一个状态变量// count 状态变量// setCount 修改状态变量的方法const [count, setCount] = useState(0)// 2. 点击事件回调const handleClick = () => {// 作用: // 1. 用传入的新值修改count// 2. 重新使用新的count渲染UIsetCount(count + 1)}return (<div><button onClick={handleClick}>{count}</button></div>)
}export default App

修改状态的规则

状态不可变

在React中,状态被认为是只读的,我们应该始终 替换它而不是修改它, 直接修改状态不能引发视图更新
       

修改对象状态

 规则:对于对象类型的状态变量,应该始终传给set方法一个全新的对象来进行修改

  

      直接修改原对象,不引发视图变化                        调用set传入新对象用于修改

组件的样式处理

React组件基础的样式控制有俩种方式

1. 行内样式(不推荐)
2. class类名控制
         
              index.css                                                        App.js

classnames优化类名控制 

classnames是一个简单的JS库,可以非常方便的 通过条件动态控制class类名的显示
现在的问题:字符串的拼接方式不够直观,也容易出错
http://www.lryc.cn/news/216581.html

相关文章:

  • 工业5G路由器;小体积 千兆高速通信组网
  • 【深度学习基础】从R-CNN到Fast R-CNN,再到MaskR-CNN,发展历程讲清楚!
  • 面试算法51:节点值之和最大的路径
  • 阿里云 k8s 容器服务 设置节点为不可调度的两种方法有什么区别?
  • 新一代数据质量平台datavines
  • 建议收藏《2023华为海思实习笔试-数字芯片真题+解析》(附下载)
  • 【详细教程】关于如何使用GitGitHub的基本操作汇总GitHub的密钥配置 ->(个人学习记录笔记)
  • HTML样式CSS、图像
  • 智能电表瞬时电量是什么意思?
  • Redis之 redis.config配置文件
  • BIOS开发笔记 - CMOS
  • leetcode_117 填充每个节点的下一个右侧节点指针 II
  • 亲测 IDEA Pycharm 全家桶 自动重置免费30天
  • Marp: 将 Markdown 变为 PPT 式样的 VScode 插件
  • 根据正则表达式截取字串符,这个办法打败99%程序员
  • 冬天女儿的羽绒服就选它了,哈哈很喜欢
  • Vim插件配置
  • 函数参数的最佳传递方式与现代C++的规则
  • Asterisk Ubuntu 安装
  • rwkv模型lora微调之accelerate和deepspeed训练加速
  • 分享一下在微信小程序里怎么做一个投票链接
  • v-model语法糖
  • 纷享销客荣获最佳制造业数字营销服务商奖
  • 蓝桥杯每日一题2023.11.3
  • 中国电子云-隐私计算-云原生安全可信计算,物理-硬件-系统-云产品-云平台,数据安全防护
  • PHP服务器端电商API原理及示例讲解(电商接口开发/接入)
  • Spring Cloud应用- Eureka原理、搭建
  • Servlet 设置启动时机(web.xml方式和@WebServlet方式)
  • 一个使用uniapp+vue3+ts+pinia+uview-plus开发小程序的基础模板
  • Kali安装docker