当前位置:首页 > React

html中的对象react如何获取

2026-01-25 23:09:05React

React 中获取 DOM 对象的方法

在 React 中,可以通过 ref 来获取 DOM 对象或组件实例。以下是几种常见的方式:

使用 useRef Hook(函数组件推荐)

import { useRef } from 'react';

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

  const handleClick = () => {
    inputRef.current.focus();
  };

  return (
    <div>
      <input ref={inputRef} type="text" />
      <button onClick={handleClick}>Focus Input</button>
    </div>
  );
}

使用 createRef(类组件)

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

  handleClick = () => {
    this.inputRef.current.focus();
  };

  render() {
    return (
      <div>
        <input ref={this.inputRef} type="text" />
        <button onClick={this.handleClick}>Focus Input</button>
      </div>
    );
  }
}

回调 Refs(适用于动态 ref 场景)

function MyComponent() {
  let inputRef = null;

  const handleClick = () => {
    inputRef.focus();
  };

  return (
    <div>
      <input ref={el => inputRef = el} type="text" />
      <button onClick={handleClick}>Focus Input</button>
    </div>
  );
}

获取子组件实例

通过 ref 也可以获取子组件的实例(仅限类组件):

class Child extends React.Component {
  method() {
    console.log('Child method called');
  }

  render() {
    return <div>Child Component</div>;
  }
}

class Parent extends React.Component {
  childRef = React.createRef();

  handleClick = () => {
    this.childRef.current.method();
  };

  render() {
    return (
      <div>
        <Child ref={this.childRef} />
        <button onClick={this.handleClick}>Call Child Method</button>
      </div>
    );
  }
}

转发 Refs(获取子组件 DOM)

使用 React.forwardRef 可以获取子组件内部的 DOM 元素:

html中的对象react如何获取

const Child = React.forwardRef((props, ref) => {
  return <input ref={ref} {...props} />;
});

function Parent() {
  const inputRef = useRef(null);

  const handleClick = () => {
    inputRef.current.focus();
  };

  return (
    <div>
      <Child ref={inputRef} />
      <button onClick={handleClick}>Focus Input</button>
    </div>
  );
}

注意事项

  • 函数组件默认不能直接通过 ref 获取实例(除非使用 forwardRef
  • ref 不应过度使用,优先考虑 React 的状态驱动原则
  • 避免在渲染期间修改 ref.current,应在事件处理或副作用中操作

标签: 对象html
分享给朋友:

相关文章

react中如何单个键值对对象

react中如何单个键值对对象

创建单个键值对对象 在React中创建单个键值对对象与普通JavaScript相同,可以使用对象字面量语法: const keyValuePair = { key: 'value' }; 动态设置键…

react 实现数组对象排序

react 实现数组对象排序

数组对象排序方法 在React中实现数组对象排序通常涉及以下几个步骤: 使用JavaScript原生排序方法 JavaScript的Array.prototype.sort()方法可以对数组进行排序…

html制作css

html制作css

HTML 与 CSS 基础整合 在 HTML 中引入 CSS 的方式主要有三种:内联样式、内部样式表和外部样式表。每种方式适用于不同的场景,具体选择取决于项目需求和维护性要求。 内联样式 直接在 H…

css制作html

css制作html

使用CSS美化HTML的基本方法 CSS(层叠样式表)用于控制HTML元素的外观和布局。通过CSS可以定义颜色、字体、间距等样式属性。 内联样式 直接在HTML标签中使用style属性添加CSS:…

html css制作海报

html css制作海报

使用HTML和CSS制作海报 制作海报需要结合HTML的结构和CSS的样式设计。以下是具体实现方法: HTML结构 <!DOCTYPE html> <html lang="zh"…

js实现数组对象倒序

js实现数组对象倒序

使用 reverse() 方法 Array.prototype.reverse() 是 JavaScript 内置方法,直接修改原数组并返回倒序后的结果: const arr = [{id: 1…