当前位置:首页 > 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 节点或组件实例:

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 的组件

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 回调

react的hooks中如何获取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

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

理解如何react

理解如何react

理解React的核心概念 React是一个用于构建用户界面的JavaScript库,专注于通过组件化开发提高代码的可维护性和复用性。其核心思想包括虚拟DOM(Virtual DOM)和单向数据流,能够…

react如何发音

react如何发音

React的发音 React的正确发音为 /riˈækt/,类似于“ree-akt”。以下是详细说明: 发音分解 第一个音节“Ree”发音类似英文单词“see”中的“ee”音。 第二个音节…

react如何同步

react如何同步

React 同步状态管理方法 在 React 中实现同步状态管理,可以通过以下多种方式实现: 使用 useState 和 useEffect 钩子 通过 useState 定义状态,使用 useEf…

react如何通信

react如何通信

React 组件通信方式 React 组件间的通信方式多样,具体选择取决于组件关系和场景需求。以下是常见方法: 父子组件通信 父组件通过 props 向子组件传递数据,子组件通过回调函数通知父组件…