当前位置:首页 > React

react如何获取div的高度

2026-01-25 09:52:47React

使用 useRefuseEffect 获取 Div 高度

在 React 中,可以通过 useRef 钩子创建一个引用,并将其附加到目标 div 上。结合 useEffect 钩子,在组件挂载或更新后获取 div 的高度。

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

function Component() {
  const divRef = useRef(null);
  const [height, setHeight] = useState(0);

  useEffect(() => {
    if (divRef.current) {
      setHeight(divRef.current.offsetHeight);
    }
  }, []);

  return (
    <div ref={divRef}>
      Div 的高度是:{height}px
    </div>
  );
}

监听窗口大小变化动态更新高度

如果 div 的高度可能因窗口大小变化而改变,可以监听 resize 事件动态更新高度。

react如何获取div的高度

useEffect(() => {
  const handleResize = () => {
    if (divRef.current) {
      setHeight(divRef.current.offsetHeight);
    }
  };

  window.addEventListener('resize', handleResize);
  return () => window.removeEventListener('resize', handleResize);
}, []);

使用 getBoundingClientRect 获取精确高度

getBoundingClientRect 方法可以返回 div 的精确尺寸信息,包括高度、宽度、位置等。

react如何获取div的高度

useEffect(() => {
  if (divRef.current) {
    const rect = divRef.current.getBoundingClientRect();
    setHeight(rect.height);
  }
}, []);

在类组件中获取 Div 高度

如果使用类组件,可以通过 createRef 或回调 ref 的方式获取 div 的高度。

class Component extends React.Component {
  constructor(props) {
    super(props);
    this.divRef = React.createRef();
    this.state = { height: 0 };
  }

  componentDidMount() {
    if (this.divRef.current) {
      this.setState({ height: this.divRef.current.offsetHeight });
    }
  }

  render() {
    return (
      <div ref={this.divRef}>
        Div 的高度是:{this.state.height}px
      </div>
    );
  }
}

使用 ResizeObserver 监听元素尺寸变化

现代浏览器支持 ResizeObserver API,可以更高效地监听元素尺寸变化。

useEffect(() => {
  const observer = new ResizeObserver((entries) => {
    for (let entry of entries) {
      setHeight(entry.contentRect.height);
    }
  });

  if (divRef.current) {
    observer.observe(divRef.current);
  }

  return () => observer.disconnect();
}, []);

这些方法涵盖了 React 中获取 div 高度的常见场景,适用于函数组件和类组件,并能处理动态变化的情况。

标签: 高度react
分享给朋友:

相关文章

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修改…

如何react页面

如何react页面

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

react如何衰减

react如何衰减

React 中的动画衰减效果实现 在 React 中实现衰减效果(如滚动衰减、拖动释放后的惯性滑动)通常需要结合物理动画原理或第三方动画库。以下是几种常见方法: 使用 CSS 动画和 @keyfra…

react如何运行

react如何运行

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

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…