当前位置:首页 > 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 native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。 /…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…

如何清洁react

如何清洁react

清洁 React 项目的方法 删除未使用的依赖项 运行 npm ls 或 yarn list 检查已安装的依赖项,使用 npm uninstall <package> 或 yarn rem…

react 如何操作cookie

react 如何操作cookie

安装依赖 在React项目中操作cookie通常需要第三方库的支持,推荐使用js-cookie。通过npm或yarn安装: npm install js-cookie # 或 yarn add js…

react 如何修改state

react 如何修改state

修改 state 的基础方法 在 React 中,state 的修改必须通过 setState 方法(类组件)或 state 更新函数(函数组件)。直接修改 state 会导致组件不会重新渲染,且可能…