当前位置:首页 > 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 事件动态更新高度。

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

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

使用 getBoundingClientRect 获取精确高度

getBoundingClientRect 方法可以返回 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如何获取div的高度

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

相关文章

react 如何引入jquery

react 如何引入jquery

安装 jQuery 库 在 React 项目中引入 jQuery 的第一步是安装 jQuery。可以通过 npm 或 yarn 安装: npm install jquery # 或 yarn a…

react native 如何

react native 如何

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

如何评价react native

如何评价react native

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

如何react页面

如何react页面

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

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何衰减

react如何衰减

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