react 学习 —— 15、使用 ref 引用值

CentOS7环境下搭建 rsyslog 日志服务器,rsyslog+loganalyzer 1.系统环境部署 ip hostname 192.168.200.182 web 192.168.200.184 rsyslog-mysql 关闭防火墙、selinux、下载epel源 [root@web ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/f 阅读详情

什么时候使用 ref?

当你希望组件“记住”某些信息,但又不想让这些信息 触发新的渲染 时,你可以使用 ref 。以下是使用的几个场景:

  • 存储 timeout ID
  • 存储和操作 DOM 元素
  • 存储不需要被用来计算 JSX 的其他对象

怎么使用 ref?

1、引入 ref。

import { useRef } from 'react';

2、在你的组件内,调用 useRef Hook 并传入你想要引用的初始值作为唯一参数。

const ref = useRef(0);

3、useRef 返回一个这样的对象:

{ 
  current: 0 // 你向 useRef 传入的值
}

4、你可以用 ref.current 属性访问该 ref 的当前值。这个值是有意被设置为可变的,意味着你既可以读取它也可以写入它。

ref.current = 3;

useRef 内部是如何运行的?

原则上 useRef 可以在 useState 的基础上 实现。 你可以想象在 React 内部,useRef 是这样实现的:

// React 内部
function useRef(initialValue) {
  const [ref, unused] = useState({ current: initialValue });
  return ref;
}

第一次渲染期间,useRef 返回 { current: initialValue }。 该对象由 React 存储,因此在下一次渲染期间将返回相同的对象。 请注意,在这个示例中,state 设置函数没有被用到。它是不必要的,因为 useRef 总是需要返回相同的对象!

ref 和 state 的不同之处

refstate
useRef (initialValue) 返回 { current: initialValue }useRef(initialValue) 返回 { current: initialValue }
更改时不会触发重新渲染更改时触发重新渲染
可变 —— 你可以在渲染过程之外修改和更新 current 的值。“不可变” —— 你必须使用 setState 设置函数来修改 state 变量,从而排队重新渲染。
在渲染期间读取(或写入) current 值页面不会改变。你可以随时读取 state。但是,每次渲染都有自己不变的 state 快照。
Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程 本文主要介绍了Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 安装教程 2.1 安装OpenClaw 2.2 配置模型 2.3 对话 3. 后续使用步骤 4. 关闭程序 阅读详情

相关推荐

Apple 网页 SRP 登录系列文章(二):网页参数提取与会话初始化

本文深入解析了Apple网页SRP登录的第一个关键环节。文章首先指出Apple登录页面采用多层安全架构,包括跨域跳转机制和动态参数生成。重点介绍了四种关键参数(ServiceKey、SCNT、FrameId、ServiceNum)的提取技术,通过正则表达式和JSON路径解析从HTML脚本和HTTP头中获取。最后详细说明了会话初始化流程,包括访问初始页面和构建认证URL。这些技术细节揭示了Apple如何通过复杂机制确保登录过程的安全性。

Sayid_Des的专栏 1130

React进阶 - 15(React 中 ref 的使用)

React进阶 - 15(React 中 ref 的使用)

千里之行,始于足下! 1596

如何使用ArcGIS Pro制作带基底三维地图

点击运行生成范围线,因为之前对高程进行了夸大,导致生成的范围线和地形边缘不重合,我们打开范围线的图层属性,选择高程选项卡,要素位于选择地面上,如下图所示。目前制作的三维地图下面是空的一片,现在添加一个基底,在工具箱内点击“3D Analyst工具\栅格\转换\栅格范围”,调用栅格范围工具,如下图所示。打开ArcGIS Pro,新建一个局部场景,在高程表面下,地面上点击右键,选择添加高程源图层,将需要制作三维地图的DEM数据加载进来,如下图所示。在要素图层菜单内,类型选择绝对高度,如下图所示。

3979

详解 React ref 属性

1. ref 用在class组件上是对组件实例的引用,用在dom元素上是对该元素真实dom节点的引用,得到引用以后就可以调用组件内定义的函数或操作dom节点(不能在函数式组件上使用 ref 属性,因为它们没有实例)。 2. 可以通过 ReactDOM.findDOMNode(ref) 来获取组件或dom元素挂载后真实的dom节点(对于dom元素上使用ref的情况,ref本身引用的就是该元素真实的...

huangpb的博客 6591

Cortex-M TrustZone实战:从硬件隔离到安全交互的嵌入式开发指南

在嵌入式系统开发中,硬件安全隔离是构建可信执行环境(TEE)的核心技术。其原理是通过处理器硬件机制,将系统资源划分为安全与非安全域,实现内存、外设和代码的强制访问控制。这项技术的核心价值在于,它能在单一芯片上为资源受限的物联网(IoT)设备、智能传感器等提供芯片级的安全基础,无需依赖外置安全元件,从而降低BOM成本并简化设计。典型的应用场景包括保护设备密钥、实现安全启动、构建安全服务(如加密、密钥管理)以供应用程序调用。本文聚焦于Arm Cortex-M系列微控制器上的TrustZone技术实现,针对开发中

weixin_42639246的博客 300

Qt(C++)使用QChart动态显示3个设备的温度变化曲线

Qt的QChart是一个用于绘制图表和可视化数据的类。提供了一个灵活的、可扩展的、跨平台的图表绘制解决方案,可以用于各种应用程序,如数据分析、科学计算、金融交易等。

1917

React(15)ref

23、ref 用过 Vue 的同学,在使用 React 的 ref 时,注意不要混淆。 在 Vue 中,ref 绑定的 DOM 元素,可以直接在组件实例里,通过 this.$refs.xxx 来获取。 但是在 React 中,ref 的属性的值,是一个函数; 函数的参数是当前 DOM 标签,或是组件实例; 于是你可以在函数体内,通过 this.xxx = xxxx 来将该 DOM 赋值给...

qq20004604的博客 1307

★教程3:Simulink学习教程入门60例目录

1.订阅本教程用户可以免费获得本博任意1个(包括所有免费专栏和付费专栏)博文对应代码;2.本Simulink课程的所有案例(部分理论知识点除外)均由博主编写而成,供有兴趣的朋友们自己订阅学习使用。未经本人允许,禁止任何形式的商业用途;3.本课程除了介绍常见的Simulink模块介绍之外,我们更侧重于各种实例的完整设计介绍。从通信,控制器,图像处理,语音处理,电力系统等诸多常用领域介绍了相关案例,如果对于某个较为复杂的案例,初学者无法正确复现,也可以私信博主获得完整Simulink模型文件。

FPGA/MATLAB学习教程/源码/项目合作开发 1万+

React 第十五章 Ref

React ref 是 React 中一个用于访问组件中 DOM 元素或者类实例的方式。它允许我们直接操作 DOM,而不需要通过 state 或 props 来更新组件。

aXin_li的博客 982

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2202

OmniDrive(2):环境搭建

项目中使用的是全量的数据集(full dataset v1.0), 数据量比较大,训练验证(trainval) + test 总计200多G的数据,单独一个个下载会比较慢。参数,否则安装的时候会自动卸载已安装好的torch,重新安装最新版本的torch,这是不允许的。在cuDNN官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,== 博文中详细介绍了完整的cuda和cudnn的安装过程==分析: 这是因为yapf 安装的版本不对,需要安装特定的版本。出现训练的loss变化,就说明可以正常训练了。

@bangbang的博客 623

【问题记录】React使用connect后,ref.current为null

在用React开发项目的过程中,遇到一个问题,使用connect连接子组件后,父组件调用子组件方法时,提示xxxRef.current为null的错误。

草率小猿的博客 4611

Buck电源设计常见的一些问题(五)MOS管振荡抑制方法(三)

关于开关节点振荡的产生机制和抑制问题,总结了三种抑制方法。第一种方法是利用输入端的高频去耦电容;第二种方法是设计 RC 缓冲电路;第三种方法是优化自举电路的串联电阻。以上三种方法均通过实验加以验证,对开关节点振荡具有很好的抑制作用。应该综合同步 Buck 变换器的各项指标权衡设计。

小幽余生不加糖 1633

enzyme ReactWrapper.ref(refName) 方法详解:按 ref 名称获取 React 组件实例或 DOM 节点

`.ref(refName)` 是 enzyme `ReactWrapper`(完整渲染 `mount` 模式)提供的一个便捷 API,用于根据字符串 ref 名称,从根组件实例的 `refs` 集合中直接取出对应的 **React 组件实例或 HTML 元素实例**。当你使用 `mount` 渲染一个带 `ref="xxx"` 字符串 ref 的组件树,并希望在断言中直接访问底层真实节点时,这个

gitblog_00210的博客 914

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

React 中 ref 操作DOM的使用

学过react的人都知道react组件render渲染的并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM。只有当插入到页面后才会形成真实的DOM结构。根据 React 的设计,所有的 DOM 变动,都先在虚拟 DOM 上发生,然后再将实际发生变动的部分,反映在真实 DOM上。有时需要从React组件中获取真实的DOM进行操作,这就需要用到标签的ref属性。ref是Re

qq_19375787的博客 2583

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

React Native中ref的用法(通过组件的ref属性,来获取真实的组件)

ref是什么? ref是组件的特殊属性,组件被渲染后,指向组件的一个引用。可以通过组件的ref属性,来获取真实的组件。因为,组件并不是真正的DOM节点,而是存在于内存中的一种数据结构,称为虚拟的DOM,只有当它真正的插入文档之后,才变为真正的DOM节点。根据React的设计,所以的DOM变动都发生在虚拟DOM上,然后再将实际的部分反映到真实的DOM上--这就是 DOM DIff,它可以...

weixin_30907935的博客 1543

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

React 状态 属性 插槽 ref 使用

【代码】React 状态 属性 插槽 ref 使用。

Code365 703

学习React中ref的两个demo示例

为了摆脱繁琐的Dom操作, React提倡组件化, 组件内部用数据来驱动视图的方式,来实现各种复杂的业务逻辑 ,然而,当我们为原始Dom绑定事件的时候, 还需要通过组件获取原始的Dom, 而React也提供了ref为我们解决这个问题. 为什么不能从组件直接获取Dom? 组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM)。只有当它插入文...

hsany330的专栏 270

react类组件中 ref三种使用

input placeholder='点击按钮提示数据' type='text' ref={(acurrentNode)=>{this.input1=acurrentNode}} ></input>

jieweiwujie的博客 501

react native的ref使用例子

/** * Create by bamboo on 2018-04-17 * ref例子 */import React,{Component} from 'react';import { StyleSheet,View, Text, TouchableOpacity} from 'react-native';export default class RefTest extends Componen...

{竹子} 1905

React中ref属性的使用

1、在ref使用的过程中,需要注意的是: 0.14.8版本及以前用 this.getDOMNode() 或者 this.findDOMNode(this.refs.tip) 15.0版本后用 ReactDOM.findDOMNode(this.refs.tip); 2、我们通过代码进行对ref的学习:如下面代码: &lt;html&gt; &lt;head&gt; &lt;m...

suwu150 7013

React3——受控组件,React Fragments,ref,context

受控组件 类似于vue的v-model 通过受控组件, 可以跟踪监听用户操作表单时的数据,从而更新容器组件的 state ,再单向渲染表单元素 UI。如果不使用受控组件,在用户实时操作表单时,比如在输入框输入文本时,不会同步到容器组件的 state 受控与非受控组件 非受控组件就相当于之前的版本,没有默认值,或者一般将初始状态进行设定,而受控组件指的是为其指定默认值以及为事件绑定与控件对应的值。 ...

yuanfangyoushan的博客 354

react-native 之 ref 的使用

react-native 之 ref 的使用,在react-native中可以通过 ref属性来获取组件,并设置组件的属性及其方法,实例如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

学习笔记666 3698

React以Hook的方式使用Echarts

目前组内在开发的项目使用的虽然是React,但是并不是之前的类式组件,所以写法有不少的区别,经过查阅之后,现以Hook的方式使用Echarts,在此进行总结,方便之后的学习。

tygkking的博客 7865

React中ref的使用

React中Ref是什么? ref是React提供的用来操纵React组件实例或者DOM元素的接口。 ref的作用对象 ref可以作用于: React组件的实例 React.createRef();的使用 myRef = React.createRef() <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Comp.

weixin_45664217的博客 321

Handsontable 15.0 React 迁移指南:从 `@handsontable/react` 到 `@handsontable/react-wrapper`

Handsontable 15.0.0(2024 年 12 月 16 日发布)为 React 生态带来了全新的函数式 `@handsontable/react-wrapper` 包装器,围绕类型安全、地道 React 用法与开发者体验重新设计。本文基于官方迁移文档,结合仓库源码([wrappers/react-wrapper](https://link.gitcode.com/i/9d464326

gitblog_00035的博客 1223
上一篇: 入坑 TS(一)
下一篇: react 学习 —— 16、使用 ref 操作 DOM
TE杨
博客等级 码龄7年 56粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值