当前位置:首页 > React

react 如何获取dom

2026-01-14 10:00:10React

获取 DOM 的方法

在 React 中,可以通过 useRefcreateRef 来获取 DOM 节点。useRef 是函数组件中常用的方法,而 createRef 通常用于类组件。

使用 useRef 获取 DOM

在函数组件中,可以通过 useRef Hook 创建一个 ref,并将其附加到目标 DOM 元素上。

react 如何获取dom

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

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

  useEffect(() => {
    if (divRef.current) {
      console.log('DOM element:', divRef.current);
    }
  }, []);

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

使用 createRef 获取 DOM

在类组件中,可以通过 createRef 方法创建 ref,并将其绑定到目标元素上。

react 如何获取dom

import React, { createRef } from 'react';

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

  componentDidMount() {
    if (this.divRef.current) {
      console.log('DOM element:', this.divRef.current);
    }
  }

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

回调 ref 的方式

除了 useRefcreateRef,还可以通过回调函数的方式获取 DOM 节点。这种方式在 React 早期版本中较为常见。

import React, { useEffect } from 'react';

function MyComponent() {
  let divRef = null;

  useEffect(() => {
    if (divRef) {
      console.log('DOM element:', divRef);
    }
  }, []);

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

动态绑定多个 ref

如果需要动态绑定多个 DOM 节点,可以通过 useRef 结合回调函数或数组的方式实现。

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

function MyComponent() {
  const refs = useRef([]);

  useEffect(() => {
    refs.current.forEach((ref) => {
      if (ref) {
        console.log('DOM element:', ref);
      }
    });
  }, []);

  return (
    <div>
      {[1, 2, 3].map((item, index) => (
        <div
          key={item}
          ref={(el) => (refs.current[index] = el)}
        >
          Item {item}
        </div>
      ))}
    </div>
  );
}

注意事项

  • 避免在渲染过程中直接操作 DOM,尽量通过 React 的状态和属性来控制界面。
  • useRef 创建的 ref 对象在组件的整个生命周期内保持不变,不会因重新渲染而改变。
  • 回调 ref 的方式在每次渲染时会被调用两次(一次传入 null,一次传入 DOM 元素),但通常不会影响功能。

标签: reactdom
分享给朋友:

相关文章

如何学react

如何学react

学习 React 的基础知识 React 是一个用于构建用户界面的 JavaScript 库。学习 React 的第一步是掌握其核心概念,包括组件、状态(State)、属性(Props)和生命周期方法…

react如何记忆

react如何记忆

React 记忆技术 在 React 中,记忆(Memoization)是一种优化技术,用于避免不必要的重新渲染或计算。React 提供了多种内置方法和第三方库来实现记忆功能。 useMemo Ho…

react 如何执行

react 如何执行

安装 React 确保 Node.js 安装在本地环境中。通过以下命令创建新的 React 项目: npx create-react-app my-app 进入项目目录并启动开发服务器:…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 编写组件代码 在 s…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 进行组件记忆 React.memo 是一个高阶组件,用于缓存函数组件的渲染结果,避免不必要的重新渲染。只有当组件的 props 发生变化时,才…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: nod…