当前位置:首页 > React

react如何当前组件高度

2026-01-25 12:05:36React

获取 React 组件高度的常用方法

使用 useRefuseEffect 获取 DOM 元素高度 通过 useRef 创建引用,绑定到目标组件的 ref 属性上,在 useEffect 中通过 clientHeightoffsetHeight 获取高度。

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

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

  useEffect(() => {
    if (ref.current) {
      setHeight(ref.current.clientHeight);
    }
  }, []);

  return (
    <div ref={ref}>
      当前组件高度:{height}px
    </div>
  );
}

监听窗口大小变化动态更新高度 结合 ResizeObserver 或窗口 resize 事件,实时更新高度值。

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

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

使用 getBoundingClientRect() 获取精确尺寸 此方法返回包含高度、宽度、位置等完整信息的对象。

useEffect(() => {
  if (ref.current) {
    const rect = ref.current.getBoundingClientRect();
    console.log('高度:', rect.height);
  }
}, []);

注意事项

react如何当前组件高度

  • clientHeight 包含内边距但不包含边框和外边距。
  • offsetHeight 包含内边距、边框和滚动条(如果有)。
  • 如果组件内容动态变化,需在依赖数组中添加相关状态以触发重新计算。

标签: 组件高度
分享给朋友:

相关文章

vue实现倒计时组件

vue实现倒计时组件

实现基础倒计时功能 使用 Vue 的 data 和 methods 定义倒计时逻辑,通过 setInterval 更新剩余时间。 <template> <div>{{…

vue实现下拉框组件

vue实现下拉框组件

Vue 下拉框组件实现 基础实现 创建基础下拉框组件,使用v-model实现双向数据绑定: <template> <div class="dropdown"> &…

uniapp如何将底部导航组件化

uniapp如何将底部导航组件化

在 uniapp 中将底部导航组件化 将底部导航组件化可以提高代码复用性和维护性。以下是具体实现方法: 创建自定义底部导航组件 新建一个组件文件,例如 tab-bar.vue,放置在 compon…

vue实现高阶组件

vue实现高阶组件

Vue 高阶组件实现方法 高阶组件(HOC)是一种复用组件逻辑的模式,通过函数包裹组件并返回新组件实现。Vue 中可通过以下方式实现: 使用 render 函数 通过函数接收组件选项并返回新组件选项…

vue组件实现原理

vue组件实现原理

Vue 组件实现原理 Vue 组件的核心实现基于以下机制: 组件注册与模板解析 Vue 组件通过 Vue.component() 或单文件组件(.vue 文件)注册。模板会被编译成渲染函数,最终生成…

vue树形组件实现

vue树形组件实现

Vue树形组件实现方法 使用Vue实现树形组件可以通过递归组件或第三方库完成。以下是几种常见实现方式: 递归组件实现 递归组件是Vue中实现树形结构的原生方式,适合简单的树形展示需求。 &…