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

【React】事件绑定、React组件、useState、基础样式

React 教程

目录

  1. 事件绑定
    1.1. 基础实现
    1.2. 使用事件参数
    1.3. 传递自定义参数
    1.4. 同时传递事件对象和自定义参数

  2. React 组件
    2.1. 组件是什么
    2.2. 组件基础使用

  3. useState:状态管理
    3.1. 基础使用
    3.2. 状态的修改规则
    3.3. 修改对象状态

  4. 基础样式
    4.1. 行内样式
    4.2. 类名控制


1. 事件绑定

1.1. 基础实现

React 中的事件绑定遵循驼峰命名法。

import React from 'react';function App() {const clickHandler = () => {console.log('button按钮点击了');};return <button onClick={clickHandler}>click me</button>;
}export default App;

1.2. 使用事件参数

事件回调函数中设置形参 e 以获取事件对象。

function App() {const clickHandler = (e) => {console.log('button按钮点击了', e);};return <button onClick={clickHandler}>click me</button>;
}

1.3. 传递自定义参数

通过箭头函数传递自定义参数。

function App() {const clickHandler = (name) => {console.log('button按钮点击了', name);};return <button onClick={() => clickHandler('jack')}>click me</button>;
}

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

传递事件对象 e 和自定义参数,注意参数顺序。

function App() {const clickHandler = (name, e) => {console.log('button按钮点击了', name, e);};return <button onClick={(e) => clickHandler('jack', e)}>click me</button>;
}

2. React 组件

2.1. 组件是什么

组件是用户界面的一部分,具有自己的逻辑和外观。

2.2. 组件基础使用

组件是首字母大写的函数,可以像标签一样使用。

import React from 'react';function Button() {return <button>click me</button>;
}function App() {return (<div><Button /><Button /></div>);
}export default App;

3. useState:状态管理

3.1. 基础使用

useState 钩子允许组件添加状态变量。

import React, { useState } from 'react';function App() {const [count, setCount] = useState(0);return (<div><button onClick={() => setCount(count + 1)}>{count}</button></div>);
}export default App;

3.2. 状态的修改规则

状态是只读的,应替换而不是直接修改状态。

function App() {const [count, setCount] = useState(0);const handleClick = () => {setCount(count + 1);};return (<div><button onClick={handleClick}>{count}</button></div>);
}

3.3. 修改对象状态

set 方法传递一个全新的对象来修改对象状态。

function App() {const [form, setForm] = useState({ name: "jack" });const handleClick = () => {setForm({ ...form, name: "lisi" });};return (<div><button onClick={handleClick}>{JSON.stringify(form)}</button></div>);
}

4. 基础样式

4.1. 行内样式

通过 style 属性设置行内样式。

function App() {return <div style={{ color: 'red' }}>this is div</div>;
}

4.2. 类名控制

使用 className 属性和 CSS 文件控制样式。

import React from 'react';
import './index.css'; // 引入 CSS 文件function App() {return <span className="foo">this is span</span>;
}export default App;
/* index.css */
.foo {color: red;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何理解ref toRef和toRefs
  • 问题记录-Spring Security- bean httpSecurity not found
  • HarmonyOS Web组件(二)
  • 低代码与传统编程:快速高质量构建系统的比较与方法
  • 全新UI自助图文打印系统小程序源码/自助云打印机前后端源码
  • IDEA工具中Java语言写小工具遇到的问题
  • 在RK3568上如何烧录MAC?
  • Windows 11 version 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jul 2024)
  • flutter 充电气泡
  • 安卓系统签名的制作与使用(SignApk.jar)踩坑记录
  • 【Vue3】从零开始编写项目
  • 今日总结:雪花算法,拉取在线用户
  • 深入理解Linux网络(二):UDP接收内核探究
  • tg小程序前端-dogs前端源码分析
  • mongodb数据导出与导入
  • docker-consul
  • golang 发送GET和POST示例
  • JAVA 学习IO流
  • Javascript设计模式学习之Observer(观察者)模式
  • jquery cookie
  • unity如何实现一个固定宽度的orthagraphic相机
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 终端用户监控:真实用户监控还是模拟监控?
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • (C语言)字符分类函数
  • (Git) gitignore基础使用
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (论文阅读40-45)图像描述1
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET C# 操作Neo4j图数据库
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .pop ----remove 删除
  • ??eclipse的安装配置问题!??
  • @media screen 针对不同移动设备
  • @RequestBody与@RequestParam:Spring MVC中的参数接收差异解析
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ 蓝桥杯Web真题 ]-布局切换
  • [2]十道算法题【Java实现】
  • [2544]最短路 (两种算法)(HDU)
  • [C#基础知识系列]专题十七:深入理解动态类型
  • [Deepin] 简单使用 RustDesk 实现远程访问Deepin
  • [Docker]十二.Docker consul集群搭建、微服务部署,Consul集群+Swarm集群部署微服务实战
  • [Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例
  • [GXYCTF2019]禁止套娃1
  • [IE技巧] 让IE 以全屏模式启动