当前位置:首页 > React

react如何获取真实dom

2026-01-24 14:20:56React

react如何获取真实dom

react如何获取真实dom

获取真实 DOM 的方法

在 React 中,可以通过 ref 来访问真实的 DOM 节点。以下是几种常见的方式:

使用 useRef Hook(函数组件)

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

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

  useEffect(() => {
    console.log(divRef.current); // 访问真实 DOM
  }, []);

  return <div ref={divRef}>Hello World</div>;
}

使用回调形式的 ref(函数组件)

function MyComponent() {
  let divRef = null;

  const setRef = (element) => {
    divRef = element;
    console.log(divRef); // 访问真实 DOM
  };

  return <div ref={setRef}>Hello World</div>;
}

使用 createRef(类组件)

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

  componentDidMount() {
    console.log(this.divRef.current); // 访问真实 DOM
  }

  render() {
    return <div ref={this.divRef}>Hello World</div>;
  }
}

使用字符串形式的 ref(不推荐)

class MyComponent extends React.Component {
  componentDidMount() {
    console.log(this.refs.myDiv); // 访问真实 DOM
  }

  render() {
    return <div ref="myDiv">Hello World</div>;
  }
}

注意事项

  • 字符串形式的 ref 已过时,不建议在新代码中使用。
  • 在函数组件中,useRef 是最常用的方式。
  • ref 不仅可以用于 DOM 元素,还可以用于类组件实例。
  • 不要在渲染期间访问 ref.current,因为此时可能尚未设置。

标签: 真实react
分享给朋友:

相关文章

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

react如何调试

react如何调试

调试 React 应用的方法 使用 React Developer Tools React Developer Tools 是 Chrome 和 Firefox 的浏览器扩展,可以检查组件树、状态和…

react如何折叠

react如何折叠

在 React 中实现折叠功能 使用 useState 管理折叠状态 通过 useState 定义一个状态变量来控制折叠面板的显示与隐藏。例如: const [isCollapsed, setIsC…

react如何减少伤病

react如何减少伤病

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

如何读react源码

如何读react源码

理解React源码的结构 React源码托管在GitHub上,主要分为几个核心模块:react、react-dom、react-reconciler等。react包包含核心API和组件逻辑,react…

react 如何修改state

react 如何修改state

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