react中useRef的作用
以前我对useRef的使用印象好像只有在表单中经常用到,今天系统的整理了一下useRef

敲重点!!! 用useRef设定的值改变 是不会引发组件重新渲染的,useState才会
接下来主要来说说useRef的几个作用吧
1:用useRef获取React JSX中的DOM元素,获取后你就可以控制DOM的任何东西了 比如控制dom聚焦 给dom赋值
1 demo1: 这段代码的实现的功能就是点击button按钮将input框里输入的值展示到p标签内。 2 import React, { useState, useRef } from "react"; 3 function App() { 4 let [name, setName] = useState("Nate"); 5 let nameRef = useRef(); // 这里就是获取ref绑定的那个DOM元素值 6 const submitButton = () => { 7 setName(nameRef.current.value); / 这里用setName设置name值时,是把input框里的输入值传入进去 8 }; 9 return ( 10 <div className="App"> 11 <p>{name}</p> 12 13 <div> 14 <input ref={nameRef} type="text" /> / 这里的ref就是获取了这个input输入框,利用ref.current就可以获取这个DOM节点 15 <button type="button" onClick={submitButton}> 16 Submit 17 </button> 18 </div> 19 </div> 20 ); 21 } 22 ===================================================================== 23 demo2: 使用 useRef 创建的变量指向一个 input 元素,点击按钮后使 input 聚焦 24 function TextInputWithFocusButton() { 25 const inputEl = useRef(null); 26 const onButtonClick = () => { 27 // `current` 指向已挂载到 DOM 上的文本输入元素 28 inputEl.current.focus(); 29 }; 30 return ( 31 <> 32 <input ref={inputEl} type="text" /> 33 <button onClick={onButtonClick}>Focus the input</button> 34 </> 35 ); 36 }
2:用useRef来保存变量,注意:useRef 每次都会返回相同的引用 useRef保存变量的好处就是 .current会拿到最新的 不会像useState 有时候会拿不到最新的
1 demo1: 利用useRef保存值 2 import React, { useRef, memo } from 'react'; 3 const InnerTable = memo(function (props) { 4 const queryRef = useRef({ 5 invoiceCode: '', 6 invoiceNumber: '', 7 }); 8 9 10 return ( 11 <input onChange={(e)=>{queryRef.current.invoiceCode=e.target.value}} placeholder="请输入发票代码"> </input> 12 <input onChange={(e)=>{queryRef.current.invoiceNumber=e.target.value}} placeholder="请输入发票号码"> </input> 13 ) 14 })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南