当前位置:首页 > React

react如何获取window对象

2026-03-10 19:10:18React

获取 window 对象的方法

在 React 中,window 对象是全局的浏览器对象,可以通过直接访问 window 来获取。以下是几种常见场景下的使用方法:

直接访问全局对象

const windowWidth = window.innerWidth;
const windowHeight = window.innerHeight;
console.log(`窗口宽度: ${windowWidth}, 高度: ${windowHeight}`);

在组件生命周期或 Hooks 中访问

react如何获取window对象

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

function WindowSizeTracker() {
  const [size, setSize] = useState({
    width: window.innerWidth,
    height: window.innerHeight
  });

  useEffect(() => {
    const handleResize = () => {
      setSize({
        width: window.innerWidth,
        height: window.innerHeight
      });
    };
    window.addEventListener('resize', handleResize);
    return () => window.removeEventListener('resize', handleResize);
  }, []);

  return <div>当前窗口尺寸: {size.width} x {size.height}</div>;
}

注意事项

  • 在服务端渲染(SSR)时,window 对象不存在,需通过 typeof window !== 'undefined' 进行防护:

    react如何获取window对象

    useEffect(() => {
    if (typeof window !== 'undefined') {
      // 安全访问 window
    }
    }, []);
  • 对于 TypeScript 项目,可通过声明全局类型解决类型检查问题:

    declare global {
    interface Window {
      myCustomProp: string;
    }
    }

典型用例

  1. 监听窗口事件(如 resize
  2. 调用浏览器 API(如 localStorage
  3. 使用第三方库依赖 window 对象(如地图 SDK)

标签: 对象react
分享给朋友:

相关文章

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

react如何开发组件

react如何开发组件

React 组件开发基础 React 组件分为函数组件和类组件两种形式。函数组件是现代 React 开发的主流方式,结合 Hooks 可以实现完整功能。 函数组件示例: function Gree…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

如何同步react

如何同步react

同步React组件状态的方法 使用useState和useEffect钩子组合可以同步React组件的状态。useState用于声明状态变量,useEffect用于监听状态变化并执行副作用。 imp…

react如何同步

react如何同步

React 同步状态管理方法 在 React 中实现同步状态管理,可以通过以下多种方式实现: 使用 useState 和 useEffect 钩子 通过 useState 定义状态,使用 useEf…