当前位置:首页 > React

react refs 如何使用

2026-02-11 20:20:08React

React Refs 的基本概念

Refs 提供了一种直接访问 DOM 节点或 React 组件实例的方式。通常在需要直接操作 DOM 或调用组件方法时使用。

创建 Refs

使用 React.createRef() 在类组件中创建 ref,或通过 useRef Hook 在函数组件中创建 ref。

类组件示例:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }
  render() {
    return <div ref={this.myRef} />;
  }
}

函数组件示例:

function MyComponent() {
  const myRef = React.useRef(null);
  return <div ref={myRef} />;
}

访问 Refs

通过 ref 的 current 属性访问 DOM 节点或组件实例。

// 类组件中
componentDidMount() {
  console.log(this.myRef.current); // 获取 DOM 节点
}

// 函数组件中
React.useEffect(() => {
  console.log(myRef.current); // 获取 DOM 节点
}, []);

回调 Refs

另一种方式是使用回调函数形式的 ref,适用于动态设置 ref 的场景。

function MyComponent() {
  const setRef = (node) => {
    if (node) {
      console.log(node); // 直接获取 DOM 节点
    }
  };
  return <div ref={setRef} />;
}

转发 Refs(Forwarding Refs)

通过 React.forwardRef 将 ref 传递给子组件,适用于高阶组件或封装库的场景。

react refs 如何使用

const FancyButton = React.forwardRef((props, ref) => (
  <button ref={ref} className="fancy">
    {props.children}
  </button>
));

function App() {
  const buttonRef = React.useRef(null);
  return <FancyButton ref={buttonRef}>Click Me</FancyButton>;
}

注意事项

  • 避免过度使用 refs,优先使用 React 的状态和属性机制。
  • 函数组件没有实例,因此 ref 不能直接指向函数组件(除非使用 forwardRef)。
  • useEffectcomponentDidMount 中访问 ref,确保 DOM 已渲染完成。

分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Reac…

react如何diff

react如何diff

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

react如何发音

react如何发音

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

react如何减少伤病

react如何减少伤病

减少React应用中的性能问题(避免"伤病") 优化React应用性能需要从组件渲染、状态管理和外部依赖等多方面入手。以下是关键优化策略: 使用React.memo进行组件记忆 对函数组件使用Rea…

react如何建项目

react如何建项目

创建React项目的几种方法 使用官方工具Create React App(CRA) npx create-react-app my-app 这条命令会创建一个名为my-app的新React项目,包含…