当前位置:首页 > React

react里如何通过ref获取dom

2026-01-26 00:29:25React

通过 ref 获取 DOM 元素

在 React 中,可以通过 useRef Hook 或 createRef 方法获取 DOM 元素的引用。以下是具体实现方式:

使用 useRef Hook(函数组件)

react里如何通过ref获取dom

import React, { useRef, useEffect } from 'react';

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

  useEffect(() => {
    console.log(divRef.current); // 获取 DOM 元素
    divRef.current.style.color = 'red'; // 操作 DOM
  }, []);

  return <div ref={divRef}>This is a DOM element</div>;
}

使用 createRef(类组件)

react里如何通过ref获取dom

import React, { Component, createRef } from 'react';

class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.divRef = createRef();
  }

  componentDidMount() {
    console.log(this.divRef.current); // 获取 DOM 元素
    this.divRef.current.style.color = 'blue'; // 操作 DOM
  }

  render() {
    return <div ref={this.divRef}>This is a DOM element</div>;
  }
}

回调 ref 的用法

React 也支持通过回调函数的方式获取 ref:

function MyComponent() {
  let divRef = null;

  return (
    <div ref={(el) => { divRef = el; }}>
      {console.log(divRef)} // 在渲染后打印 DOM 元素
    </div>
  );
}

转发 ref 到子组件

如果需要获取子组件的 DOM 节点,可以使用 forwardRef

const ChildComponent = React.forwardRef((props, ref) => (
  <div ref={ref}>{props.children}</div>
));

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

  useEffect(() => {
    console.log(childRef.current); // 子组件的 DOM 元素
  }, []);

  return <ChildComponent ref={childRef}>Child Content</ChildComponent>;
}

注意事项

  • Ref 的 current 属性在组件挂载后才会被赋值,初始值为 null
  • 避免过度使用 ref 直接操作 DOM,优先考虑 React 的状态驱动方式。
  • 函数组件每次渲染都会重新执行,因此回调 ref 可能会被调用两次(清空旧 ref 和设置新 ref)。

标签: reactref
分享给朋友:

相关文章

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义,…

react如何测试

react如何测试

React 测试方法 React 应用的测试通常涉及组件测试、集成测试和端到端测试。以下是常用的测试工具和方法: Jest Jest 是 Facebook 开发的 JavaScript 测试框架,适…

react 如何引入jquery

react 如何引入jquery

引入 jQuery 到 React 项目 在 React 项目中引入 jQuery 可以通过多种方式实现,但需要注意 React 和 jQuery 操作 DOM 的方式可能冲突,因此建议仅在必要时使用…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…

如何改造react

如何改造react

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

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…