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

优化性能 使用React.memo对组件进行记忆化处理,避免不必要的重新渲染。对于类组件,可以使用PureComponent来达到类似效果。 利用useMemo缓存计算结果,避免重复计算。对于函数或…

react如何循环

react如何循环

循环渲染列表 在React中循环渲染列表通常使用map方法,这是最常用的方式。通过map可以将数组中的每个元素转换为React元素并渲染到页面上。 const items = ['Apple', '…

typescript react 如何

typescript react 如何

TypeScript 与 React 结合使用的方法 在 React 项目中使用 TypeScript 可以提升代码的可维护性和类型安全性。以下是一些关键步骤和最佳实践: 安装 TypeScript…

如何关闭react

如何关闭react

关闭React应用的步骤 在开发或运行React应用时,可能需要关闭正在运行的开发服务器或停止应用。以下是几种常见情况的处理方法: 停止开发服务器 如果正在使用npm start或yarn star…

react如何debugger

react如何debugger

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

react native如何

react native如何

React Native 基础知识 React Native 是一个由 Facebook 开发的框架,用于使用 JavaScript 和 React 构建跨平台移动应用。它允许开发者编写一次代码,同时…