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

react 初体验2

1. Mounting:已插入真实 DOM

2. Updating:正在被重新渲染

3. Unmounting:已移出真实 DOM


click、change

这里只能用 onClick = { 方法名 } 不能用@

<button onClick={ handleClick }>切换</button>
<button onClick={() => setCount((count) => count + 1)}>count is { count }</button
<span>{isSuccess ? '成功' : '失败'}</span>
<input type="text" placeholder="输入内容(防抖)" value={inputVal} onChange={(e) => handleInput(e.target.value)} />

正常情况

如果是直接赋值 则会立即调用
如果是想要点击后再改变 需要变成箭头函数正确
<button onClick={() => handleClick(true)}>切换</button>正确  注意方法的括号!!!
<button onClick={ handleClick }>切换</button>错误  这样会立即执行
<button onClick={ handleClick(true) }>切换</button>

渲染

这里直接渲染的话 是{ 单括号 }
<button>{ count }</button>
<input type="text" placeholder="输入内容(防抖)" value={inputVal} onChange={(e) => handleInput(e.target.value)} />
添加样式 是双括号
style={{ marginLeft: '10px' }}

JSX 元素必须被一个标签包裹

方法 1

但这样会多出一个不必要的 <div>,可能影响样式或结构。

当然如果你需要在这里想样式 也可以写

function One() {return (<div><h1>One</h1><p>这是第一个页面</p></div>);
}
方法 2 推荐

这里的<></> 相当于React.Fragment 这种更简洁

<>  <h1>One</h1><p>内容</p>
</>============================ 这两种是相等的<React.Fragment><h1>One</h1><p>内容</p>
</React.Fragment>
function One() {return (<><h1>One</h1><p>这是第一个页面</p></>);
}

关于 css 样式 当成变量使用

这里的 style 引入的后缀名是 module.css 所以才有导出功能

如果是 css 那没办法 只能用 className 类名设置样式

import styles from './login.module.css';<Layout className={styles.loginLayout}><Content className={styles.loginContent}><Card className={styles.loginCard} title="用户登录"></Card></Content>
</Layout>

useRef

useRef vs useState 对比

特性

useRef

useState

值变化是否触发重新渲染?

❌ 不会

✅ 会

适合存什么?

定时器、DOM 节点、临时变量

状态(需要驱动 UI 更新)

访问方式

ref.current

state

/ setState

你要更新界面 → 用 useState
你要保存一个值但不想触发渲染 → 用 useRef


useState

useState 是一个 React Hook,它允许你向组件添加一个 状态变量。

返回

useState 返回一个由两个值组成的数组:这里一般用结构的方式

  1. 当前的 state。在首次渲染时,它将与你传递的 initialState 相匹配。
  2. set函数,它可以让你将 state 更新为不同的值并触发重新渲染。
const [state, setState] = useState(initialState)import { useState } from 'react';function MyComponent() {const [age, setAge] = useState(28);const [name, setName] = useState('Taylor');const [todos, setTodos] = useState(() => createTodos());
}function setNumber(){setAge(18)
}return (<><div><button onClick={ setNumber }>设置年龄</button></div><>
)

http://www.dtcms.com/a/423537.html

相关文章:

  • 内网穿透的原理和配置
  • 科技护航童心:物联网助力科学护眼与智能哄娃新方式
  • 挂网站需要什么服务器wordpress 短信验证码
  • 【代码随想录day 29】 力扣 135.分发糖果
  • 上海企业建站咨询c 微信小程序开发教程
  • 新奇特:数字永生,当神经网络成为你的数字化身
  • 开题报告之基于SpringAI的AI笔记智能体的设计与实现
  • 【SpringBoot】@Scheduled是静态配置,是我想改时间,但又不想引入其他组件,还有什么方案么?
  • ip做网站地址电商平面设计师
  • C语言内存布局:虚拟地址空间详解
  • 南昌比较好的网站设计白银市建设网站
  • Redis:高性能内存数据库的六大核心优势
  • Qt 程序包括Qt Creator 无法使用fcitx 输入法的解决办法
  • 【题解】洛谷 P4051 [JSOI2007] 字符加密 [后缀数组]
  • 免费 网站建设火车头 wordpress接口
  • 【MYSQL 】SQL 行列转换实战:如何用 CASE WHEN 与 SUM/MAX 重塑部门表
  • 网站申请支付宝支付网站关键词选取的方法
  • 最新版谷歌浏览器Axure插件(免翻墙)
  • 网站加载特效代码开源镜像网站开发
  • 虚拟串口工具vspd
  • 从入门到精通【Redis】理解Redis事务
  • Android16 wifi启动后自动连接的第一个wifi分析和修改
  • 【C++STL :vector类 (一) 】详解vector类的使用层vector实践:算法题练习
  • 做淘宝用那些网站发货如何进行电子商务网站推广
  • 语言是火,视觉是光:论两种智能信号的宿命与人机交互的未来
  • Java应用实例:三角形判断(向量叉积、海伦公式)、分数序列求和
  • Go Modules 包管理 (Go 模块)
  • Go基础(⑦实例和依赖注入)
  • 网站建设绩效考核方案ppt网页开发背景与意义
  • 【数据结构】基础知识