当前位置:首页 > React

react如何获取窗口高度

2026-01-24 14:57:03React

获取窗口高度的方法

在React中获取窗口高度可以通过以下几种方式实现:

react如何获取窗口高度

使用window.innerHeight

直接访问window.innerHeight属性可以获取当前窗口的视口高度(不包含工具栏和滚动条)。

react如何获取窗口高度

const windowHeight = window.innerHeight;

使用useEffect和useState结合

在函数组件中,可以使用React的useEffectuseState钩子来动态获取和更新窗口高度。

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

function App() {
  const [windowHeight, setWindowHeight] = useState(window.innerHeight);

  useEffect(() => {
    const handleResize = () => {
      setWindowHeight(window.innerHeight);
    };

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

  return <div>Window height: {windowHeight}px</div>;
}

自定义Hook封装

可以将获取窗口高度的逻辑封装成一个自定义Hook,方便复用。

import { useState, useEffect } from 'react';

function useWindowHeight() {
  const [windowHeight, setWindowHeight] = useState(window.innerHeight);

  useEffect(() => {
    const handleResize = () => {
      setWindowHeight(window.innerHeight);
    };

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

  return windowHeight;
}

function App() {
  const height = useWindowHeight();
  return <div>Window height: {height}px</div>;
}

注意事项

  • 在服务器端渲染(SSR)时,window对象不存在,需要确保代码在客户端执行。
  • 监听resize事件可能会影响性能,建议在组件卸载时移除事件监听。
  • 如果需要获取包含工具栏和滚动条的完整窗口高度,可以使用window.outerHeight

标签: 高度窗口
分享给朋友:

相关文章

jquery获取高度

jquery获取高度

jQuery获取元素高度的方法 使用jQuery可以方便地获取元素的高度,以下是几种常见的方法: 获取元素的实际高度(包括padding但不包括border和margin) var height…

react如何监听滚动高度

react如何监听滚动高度

监听滚动高度的实现方法 在React中监听滚动高度可以通过以下几种方式实现,具体选择取决于应用场景和需求。 使用useEffect和事件监听 通过useEffect钩子添加滚动事件监听器,获取滚动位…

react如何获取元素高度

react如何获取元素高度

获取元素高度的常用方法 在React中获取元素高度可以通过以下几种方式实现: 使用useRef和useEffect钩子 通过React的ref系统获取DOM节点并测量其高度: import Rea…

react中如何获取到元素滚动高度

react中如何获取到元素滚动高度

获取元素滚动高度的方法 在React中获取元素的滚动高度可以通过以下几种方式实现: 使用ref获取DOM元素 通过useRef钩子获取DOM元素的引用,直接访问元素的scrollTop属性获…

js实现浮动窗口

js实现浮动窗口

实现浮动窗口的基本结构 浮动窗口通常是一个固定在页面某个位置的DOM元素,可以通过CSS和JavaScript控制其位置和行为。以下是一个基础的实现方法: <div id="floatWind…