当前位置:首页 > React

react的refs如何取值

2026-03-31 15:58:21React

React Refs 取值方法

在 React 中,Refs 用于直接访问 DOM 节点或 React 组件实例。以下是几种常见的取值方法:

使用 React.createRef()

通过 React.createRef() 创建 ref 并附加到 React 元素上,通过 current 属性访问 DOM 节点或组件实例。

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

  componentDidMount() {
    console.log(this.myRef.current); // 访问 DOM 节点或组件实例
  }

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

使用回调 Refs

通过传递一个函数作为 ref 属性,该函数接收 DOM 节点或组件实例作为参数。

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.myRef = null;
    this.setMyRef = (element) => {
      this.myRef = element;
    };
  }

  componentDidMount() {
    console.log(this.myRef); // 直接访问 DOM 节点或组件实例
  }

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

使用 useRef Hook(函数组件)

在函数组件中,使用 useRef Hook 创建 ref 并通过 current 属性访问。

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

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

  useEffect(() => {
    console.log(myRef.current); // 访问 DOM 节点或组件实例
  }, []);

  return <div ref={myRef}>Hello, World!</div>;
}

转发 Refs(访问子组件 DOM 节点)

通过 React.forwardRef 将 ref 传递给子组件的 DOM 节点。

react的refs如何取值

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

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

  useEffect(() => {
    console.log(childRef.current); // 访问子组件的 DOM 节点
  }, []);

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

注意事项

  • Ref 的 current 属性在组件挂载后才会被赋值,初始值为 null
  • 避免过度使用 refs,优先考虑 React 的数据流(如 props 和 state)。

标签: reactrefs
分享给朋友:

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官方…

react如何调试

react如何调试

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

react 如何debug

react 如何debug

React 调试方法 使用 React Developer Tools React Developer Tools 是浏览器扩展,支持 Chrome 和 Firefox。安装后,可以在开发者工具中查看…

react如何分

react如何分

React 分页实现方法 在 React 中实现分页功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理分页数据 在组件内部维护当前页码和每页数据量的状态,通过计算切片数据实现分页。…

react 如何精通

react 如何精通

掌握核心概念 深入理解React的基础概念,包括组件(函数组件与类组件)、状态(useState)、生命周期(useEffect)、Props传递、虚拟DOM与Diff算法。通过官方文档或《React…