当前位置:首页 > 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 可以方便地获取或设置元素的高度。以下是几种常用的方法: 获取元素高度 使用 height() 方法可以获取匹配元素中第一个元素的计算高度(…

jquery获取高度

jquery获取高度

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

vue实现表单窗口

vue实现表单窗口

Vue 实现表单窗口的方法 使用 Vue 组件创建表单 创建一个 Vue 单文件组件(SFC),包含表单元素和提交逻辑。表单可以包含输入框、下拉菜单、复选框等常见元素。 <template&g…

js实现聊天窗口

js实现聊天窗口

实现聊天窗口的基本结构 使用HTML和CSS构建聊天窗口的界面框架。HTML部分需要包含消息显示区域和输入框,CSS用于美化界面。 <div class="chat-container">…

js实现窗口

js实现窗口

窗口创建与操作 使用JavaScript创建或操作窗口可以通过window.open()方法实现。该方法允许在新窗口或标签页中加载指定URL,并可控制窗口的大小、位置等属性。 语法示例:…

js 实现窗口置顶

js 实现窗口置顶

实现窗口置顶的 JavaScript 方法 在 JavaScript 中,可以通过操作 DOM 或结合浏览器 API 实现类似窗口置顶的效果。以下是几种常见方法: 使用 CSS 的 position…