直接上干货

1.使用 react 函数时组件获取 

import React, { useState, useEffect, } from 'react';const App = () => {// 浏览器的高度 默认设置为0;const [height, setHeight] = useState(0); const resizeUpdate = (e) => {// 通过事件对象获取浏览器窗口的高度let h = e.target.innerHeight;setHeight(h);};useEffect(() => {// 页面刚加载完成后获取浏览器窗口的大小let h = window.innerHeight;setHeight(h)// 页面变化时获取浏览器窗口的大小 window.addEventListener('resize', resizeUpdate);return () => {// 组件销毁时移除监听事件window.removeEventListener('resize', resizeUpdate);}}, []);return (<div>浏览器的高度为:{height}</div>);
};export default App;

2. 类式组件

import React, { Component } from 'react';class App extends Component { constructor(props){super(props);this.state = {height: 0}}resizeUpdate = (e) => {// 通过事件对象获取浏览器窗口高度let h = e.target.innerHeight;this.setState({height: h})}componentDidMount(){// 页面加载完成获取高度let h = window.innerHeight;this.setState({height: h});// 当页面大小改变后获取高度window.addEventListener('resize', this.resizeUpdate);}componentWillUnmount(){// 离开页面时移除监听事件window.removeEventListener('resize', this.resizeUpdate);}render() {return (<div>浏览器窗口的高度是:{this.state.height}</div>)}
}export default App;

React监听浏览器窗口大小的改变相关推荐

  1. vue监听浏览器窗口大小变化,做对应的操作

    页面初始化mounted的时候,通过document.body.clientWidth和document.body.clientHeight获取到浏览器的宽和高,然后通过 window.onresiz ...

  2. js 监听浏览器窗口大小变化

    监听浏览器大小变化 window.addEventListener('resize', function() {// 变化后需要做的事console.log("bianhuale====== ...

  3. html5 浏览器退回事件,html5的pushstate以及监听浏览器返回事件的实现

    这篇文章主要介绍了html5的pushstate以及监听浏览器返回事件的实现,主要介绍了pushstate的使用,以及监听浏览器的解决等问题,感兴趣的可以一起来了解一下 pushstate与监听浏览器 ...

  4. html5中检测网络状态的方法,前端js监听浏览器网络变化

    首先,为什么要让前端判断用户的网络状态呢--为了更好的用户体验. 其次,前端能否判断网络状态?有哪些方法? 1,可以做到渐进式判断,不能做到绝对准确. 2,使用的是navigator.onLine或n ...

  5. 09_Filter过滤器(访问所有资源前,首先执行自定义过滤器类的doFilter方法)_Listener监听器(监听域对象的改变)

    Filter 什么是Web过滤器? 如何使用Filter过滤器? 自定义Filter类的生命周期 过滤器可以拦截哪些资源路径? 拦截方式配置:资源被访问的方式 过滤器链的默认执行顺序是什么? 如何配置 ...

  6. linux输入数字切换浏览器tab,js监听浏览器tab窗口切换

    js监听浏览器tab窗口切换 --IT唐伯虎 摘要:js监听浏览器tab窗口切换. if (document.hidden !== undefined) { document.addEventList ...

  7. js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)

    各部分功能代码详见注释: <template><div><button v-if="!ifFullScreen" @click="fullS ...

  8. popState 监听浏览器切换路由

    浏览器内 popState 监听器使用 在前端开发过程中,在一些业务场景中可能会遇到监听浏览器前进/后退.控制路由等情况.我们可以使用Web API提供的popState事件来处理这些情况,提到pop ...

  9. react 监听组合键_投资组合中需要的5个React项目

    react 监听组合键 You've put in the work and now you have a solid understanding of the React library. 您已经完 ...

最新文章

  1. 6 款 Java 8 自带工具,轻松分析定位 JVM 问题!
  2. 做WebRTC,千万别把媒体和信令混在一起
  3. Linux 内核源代码的目录结构
  4. php的转义字符quot;反斜杠quot;是,php如何去除转义字符中的反斜杠
  5. 如何给页面加上loding_excel打印区域页面设置
  6. C++学习笔记(10)运算符重载,友元函数,友元类
  7. SQL server学习(一)数据库的基本知识、基本操作和基本语法
  8. gpu超算算法_2018电磁仿真(HFSS、CST、FEKO)单机集群并行计算特点分析与完美解决方案...
  9. linux 3.16内核下载,linux块设备驱动程序示例(适用于高版本内核3.16.0 - 3.19.0等,亲测可用)...
  10. matlab 数值计算方法 pdf,《现代数值计算方法(MATLAB版)》习题解答.pdf
  11. 使用EXCEL批量创建文件夹(无乱码)
  12. admi后台 vue_vue-ele-admin后台管理系统框架__布局
  13. 给IT新人的15个建议:苦逼程序员的辛酸反省与总结 - 博客 - 伯乐在线
  14. 【QNX Hypervisor 2.2 用户手册】4 构建QNX Hypervisor系统
  15. 【数据科学家学习小组】之统计学(第二期)第一周(20191028-20191103)-momi
  16. Tableau-旭日图(详细操作步骤)
  17. MySQL根据出生日期查询年龄,以及对年龄进行分组统计
  18. 【Python数据挖掘】用朴素贝叶斯预测人类活动识别
  19. 空间3点求三点所在空间圆的圆心空间坐标
  20. 杰理之触摸、触摸按键不开 机【篇】

热门文章

  1. 大众集团征战“万亿”欧元软件赛道,自动驾驶才是游戏改变者
  2. 骑砍服务器文件夹,骑马与砍杀2东亚决斗服服务器密码 决斗服服务器密码是多少...
  3. 【BP回归预测】改进的鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 2184期】
  4. 华为荣耀6x计算机怎么找不到,华为荣耀6x桌面软件找不到了,怎样找到
  5. 暗黑游戏(pgrune)
  6. 漫画:5 分钟学会红黑树算法!
  7. 云顶之弈怎么防止被机器人拉_云顶之弈防海克斯怎么站位 云顶之弈防海克斯站位玩法攻略...
  8. Vue中computed与watched
  9. IDEA报错1099
  10. linux log 日志解析