react,hooks中的useRef使用

在React中,useRef 是一个 Hook,它返回一个可变的引用对象,其 .current 属性被初始化为传递的参数(initialValue)。这个引用对象会在组件的整个生命周期内保持不变,并且可以在函数组件内部存储任何可变值,而不必触发重新渲染。

以下是一个 useRef 的基本使用示例:

javascript 复制代码
import React, { useRef } from 'react';

function TextInputWithFocusButton() {
  // 创建一个ref来获取input元素
  const inputEl = useRef(null);

  // 定义一个函数,用于将焦点设置到input元素上
  const onButtonClick = () => {
    // 使用ref.current访问DOM元素
    inputEl.current.focus();
  };

  return (
    <div>
      {/* 将ref通过ref属性传递给<input>元素 */}
      <input type="text" ref={inputEl} />
      
      {/* 当按钮被点击时,调用onButtonClick函数 */}
      <button onClick={onButtonClick}>Focus the input</button>
    </div>
  );
}

export default TextInputWithFocusButton;

在这个例子中:

我们首先导入了 useRef Hook。

在组件内部,我们调用 useRef(null) 来创建一个引用对象 inputEl。

然后定义了一个处理函数 onButtonClick,当点击按钮时,该函数会被调用,进而调用 inputEl.current.focus() 来将焦点设置到与 inputEl 关联的 元素上。

在 标签上,我们将 inputEl 作为 ref 属性的值传入。React会自动将DOM元素关联到 inputEl.current 上,这样我们就可以在组件的任何地方直接访问和操作这个DOM元素了。

除了获取和操作DOM元素之外,useRef 还可以用来保存任何需要跨渲染周期保持的值,例如滚动位置、计数器或者其他非响应式的变量。

相关推荐
脱离语言17 分钟前
Jeecg3.8.2 前端经验汇总
开发语言·前端·javascript
NEXT0633 分钟前
useMemo 与 useCallback 的原理与最佳实践
前端·javascript·react.js
小爱丨同学34 分钟前
React-Context用法汇总 +注意点
前端·javascript·react.js
徐同保2 小时前
python如何手动抛出异常
java·前端·python
极客小云2 小时前
【实时更新 | 2026年国内可用的npm镜像源/加速器配置大全(附测速方法)】
前端·npm·node.js
半兽先生2 小时前
告别 AI 乱写 Vue!用 vue-skills 构建前端智能编码标准
前端·vue.js·人工智能
木易 士心2 小时前
ESLint 全指南:从原理到实践,构建高质量的 JavaScript/TypeScript 代码
javascript·ubuntu·typescript
前端达人3 小时前
都2026年了,还在用Options API?Vue组合式API才是你该掌握的“正确姿势“
前端·javascript·vue.js·前端框架·ecmascript
Dxy12393102163 小时前
Python检查JSON格式错误的多种方法
前端·python·json
chao-Cyril4 小时前
从入门到进阶:前端开发的成长之路与实战感悟
前端·javascript·vue.js