当前位置:首页 > React

react的hooks中如何获取ref

2026-01-25 22:01:27React

获取 ref 的常用方法

在 React Hooks 中,可以通过 useRef Hook 创建 ref,并将其附加到 DOM 元素或组件实例上。以下是几种常见的使用方式:

创建并绑定 ref

import { useRef } from 'react';

function MyComponent() {
  const myRef = useRef(null);

  return <div ref={myRef}>This is a ref example</div>;
}

访问 ref 当前值 通过 ref.current 可以访问到实际的 DOM 节点或组件实例:

react的hooks中如何获取ref

function MyComponent() {
  const inputRef = useRef(null);

  const handleClick = () => {
    inputRef.current.focus();
  };

  return (
    <>
      <input ref={inputRef} />
      <button onClick={handleClick}>Focus Input</button>
    </>
  );
}

在自定义组件中使用 ref

默认情况下,函数组件不能直接接收 ref 属性。需要使用 forwardRef 来转发 ref:

定义可接收 ref 的组件

react的hooks中如何获取ref

const CustomInput = forwardRef((props, ref) => {
  return <input ref={ref} {...props} />;
});

function ParentComponent() {
  const inputRef = useRef(null);

  return <CustomInput ref={inputRef} />;
}

动态绑定多个 ref

当需要管理多个 ref 时,可以使用 ref 回调函数或者对象存储多个 ref:

使用 ref 回调

function MultiRefComponent() {
  const refs = useRef([]);

  const setRef = (index) => (el) => {
    refs.current[index] = el;
  };

  return (
    <>
      {[1, 2, 3].map((item, index) => (
        <div key={item} ref={setRef(index)}>
          Item {item}
        </div>
      ))}
    </>
  );
}

注意事项

  • ref 的值会在组件挂载后更新,初始值为 null
  • 修改 ref 不会触发组件重新渲染
  • 避免在渲染过程中修改 ref,应在事件处理或副作用中操作
  • 对于函数组件,必须使用 forwardRef 才能接收 ref

标签: reacthooks
分享给朋友:

相关文章

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app np…

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 依赖于 Node.js 和 npm(Node Package Manager)。从 Node.js 官网下载并安装最新稳定版本,安装完成后会自动包含 np…

react如何diff

react如何diff

React Diff 算法原理 React 的 Diff 算法是 Virtual DOM 的核心部分,用于高效更新真实 DOM。其核心思想是通过对比新旧 Virtual DOM 树的差异,最小化 DO…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Re…

如何配置react

如何配置react

配置React项目的步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过官网下载并安装最新版本。安装完成后,运行以下命令验证版本: node -v npm -v 创建…

react如何打包

react如何打包

打包 React 项目的基本步骤 React 项目通常使用 create-react-app 或类似的脚手架工具创建,这些工具内置了打包功能。以下是打包 React 项目的详细方法: 安装依赖并构建…