React-resize窗口监听

2023-11-03

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

// 创建自定义函数来写入方法
function UseWillSize() {
  const [size, setSize] = useState({
    width: document.documentElement.clientWidth,
    height: document.documentElement.clientHeight,
  })
  // 写入方法
  // 使用 useCallback 缓存方法
  const onResize = useCallback(() => {
    setSize({
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
    })
  }, [])
  useEffect(() => {
    window.addEventListener('resize', onResize)
    return () => {
      window.removeEventListener('resize',  onResize)
    }
  }, [onResize])
  return size
}

function ExampleIndex() {
  const size = UseWillSize()
  return (
    <>
      <h2>
        高:{ size.height }
      </h2>
      
      <h2>
        宽:{ size.width }
      </h2>
    </>
  )
}

export default ExampleIndex
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React-resize窗口监听 的相关文章

  • react项目按需加载报错 .libraryName is not a valid Plugin property

    babel presets react app plugins import libraryName antd style true 原配置如上会报错 libraryName is not a valid Plugin property g
  • 函数式组件与类组件有何不同?

    与React类组件相比 React函数式组件究竟有何不同 在过去一段时间里 典型的回答是类组件提供了更多的特性 比如state 当有了Hooks后 答案就不再是这样了 或许你曾听过它们中的某一个在性能上的表现优于另一个 那是哪一个 很多此类
  • Antd DatePicker 设置默认值报clone.weekday is not a function

    代码 dayjs版本1 11 7 页面 当点击页面日期框会报clone weekday is not a function 解决方法 在jsx文件中添加如下js import dayjs from dayjs import advanced
  • state和props的区别__react

    首先说明 state和props是每个组件都有的 其次 state可变 但props不可变 这是官网给出的说法 但实操过程中 state的确可变 但props也可以变 是不是fb搞错了 当然不是 这里的可变与不可变 说的是改变后 是否会重新
  • React学习之扩展浅比较(三十四)

    注意 这玩意也已经被React PureComponent的功能取代了 这里依旧是提一下 主要是React v15的版本中的react with addons js 这些玩意还存在 哎 害人呐 引入 import shallowCompar
  • 对 React Hook的闭包陷阱的理解,有哪些解决方案?

    hooks中 奇怪 其实符合逻辑 的 闭包陷阱 的场景 同时 在许多 react hooks 的文章里 也能看到 useRef 的身影 那么为什么使用 useRef 又能摆脱 这个 闭包陷阱 搞清楚这些问题 将能较大的提升对 react h
  • 配置使用Eslint的时候 版本错误 "eslint": "5.6.0" a different version of eslint was detected higher up in the tr

    1 如果你也遇到下面的问题 你可以 按照命令行提示的那样 下面这四步完成的一般就可以了 但是不排除你在运行的时候忘记下载某些依赖 1 删除 package lock json 不是package json 你可以选择 yarn lock 或
  • react 使用 scss

    react 使用 scss 日常记录开发中遇到的坑 1 使用 npm install sass loader node sass S 进行安装 2 在页面中直接使用 有时候可以 有时候不行 原因 我个人觉得安装的两个插件本版兼容问题 nod
  • chrome浏览器安装redux-devtools调试工具

    chrome浏览器安装redux devtools调试工具 1 点击进入https www chromefor com 2 在搜索框搜索redux 3 找到最新版本 Redux DevTools v2 17 0 进行下载 4 选择下载线路
  • 【Ant Design】Form.Item创建自定义表单

    一 概述 Antd是一个非常强大的UI组件库 里面的Form表单组件也基本能满足我们大多数场景 但是也有需要自定义表单的场景 Vue2里我们使用v model 结合子组件的model属性 来实现自定义组件的双向绑定 Vue3里我们使用v m
  • 三分钟实现一个react-router-dom5.0的路由拦截(导航守卫)

    不同于vue 通过在路由里设置meta元字符实现路由拦截 在使用 Vue 框架提供了路由守卫功能 用来在进入某个路有前进行一些校验工作 如果校验失败 就跳转到 404 或者登陆页面 比如 Vue 中的 beforeEnter 函数 rout
  • Notion笔记搭建博客网站 - NotionNext

    NotionNext是什么 NotionNext是我在Github上开源的基于Next js框架开发的博客生成器 目的是帮助写作爱好者们通过Notion笔记快速搭建一个独立站 从而专注于写作 而不需要操心网站的维护 它将您的Notion笔记
  • React-(4)React中的事件绑定

    React中的事件绑定 在 React 组件中 每个方法的上下文都会指向该组件的实例 即自动绑定 this 为当前组件 而且 React 还会对这种引用进行缓存 以达到 CPU 和内存的最优化 在使用 ES6 classes 或者纯函数时
  • Ant Design Pro从零到一(认识AntD)

    废话 在我们第一次接触AntD的时候 会遇到两个东西 一个是Ant Design 另一个是Ant Design Pro 他们的官网分别是 Ant Design 一套企业级 UI 设计语言和 React 组件库 Ant Design Pro
  • React之state、hooks性能分析

    目录 一 state 1 为什么使用setState 2 setState异步更新 3 如何获取异步的结果 4 setState一定是异步吗 5 源码分析 6 数据的合并 7 多个state的合并 二 为什么需要Hook 三 Class组件
  • React核心概念:状态提升

    上一节 表单 下一节 组合vs继承 React核心概念 状态提升 引言 添加第二个输入框 编写转换函数 状态提升 经验总结 引言 很多情况下我们使用的多个组件需要对同一个数据做出对应的反应 在这里我们推荐把这个共享的状态提升到距离这些组件最
  • react 父组件调用子组件的方法

    子组件中 const child forwardRef props ref gt useImperativeHandle ref gt 这里面的方法是暴露给父组件的 test console log 我是组件里的test方法 test2 t
  • React事件处理及事件流

    React事件处理 React事件处理是通过将事件处理器绑定到组建上处理事件 事件触发的同时更新组建的内部状态 内部状态更新会触发组件的重绘 React 元素的事件处理和 DOM 元素的事件处理很相似 但语法上的略有区别 在React中事件
  • React配置@src根路径

    第一种 直接修改node modules包中的webpack config js文件 找到node modules react scripts config webpack config js文件 修改其中alias中的配置 添加 src
  • React Jsx转换成真实DOM过程?

    面试官 说说React Jsx转换成真实DOM过程 一 是什么 react 通过将组件编写的 JSX 映射到屏幕 以及组件中的状态发生了变化之后 React 会将这些 变化 更新到屏幕上 在前面文章了解中 JSX 通过 babel 最终转化

随机推荐

  • CocosCreator中的Prefab文件格式总结

    CocosCreator所有的Prefab都是以下类似的格式 我们学会用文本编辑器查看Prefab文件 可以帮助我们更轻松的查找节点 查看节点和组件信息 批量修改节点和组件信息等等 因为在文本编辑器中的Prefab文件才是原始的 而且Coc
  • 【clion】实现类似自定义代码自动补全的功能(懒人利器)

    比如我有句代码是经常要使用的 如下 freopen Users zhangkanqi Desktop 11 txt r stdin 但是自动补全里并没有这句话 网上也没有找到如何自定义自动补全的语句 学艺不精 可是我每次又懒得写这句话 因为
  • Java数据存储类型ArrayList、HashSet、HashMap、LinkedList使用不同遍历方法效率研究By Python

    Java不同数据存储类型使用不同遍历方法效率研究 GitHub代码仓库 数据存储类型 ArrayList HashSet HashMap LinkedList 遍历方法 传统遍历方法 for int i 0 i
  • 设计模式(三)工厂方法模式

    前一篇文章介绍了简单工厂模式 留下了一个疑问 如果需要扩展员工等级 有没有不修改既有接口的方式 答案就是工厂方法模式 既然员工的职级可以扩展 那创建对应职级员工的工厂是不是也可以扩展 工厂基类提供一个接口获取具体的产品 一旦有新的产品 就创
  • C++ day7

    简单vector include
  • CGAL 二维点集的凸包提取

    目录 一 凸包 二 代码实现 三 结果展示 一 凸包 用不严谨的话来讲 给定二维平面上的点集 凸包就是将最外层的点连接起来构成的凸多边形 它能包含点集中所有的点 百度百科 凸包 二 代码实现 include
  • 基于matlab和FFT算法实现信号频谱分析

    系列文章目录 数字信号处理 DSP Digital Signal Process 是电子通信领域非常重要的研究方向 博主汇总了数字信号处理 DSP 中常用的经典案例分析 主要基于算法分析 MATLAB程序实现 信号图像显示 对数字信号处理的
  • 算法竞赛入门经典(第二版)-刘汝佳-第十章 数学概念与方法 例题(16/29)

    文章目录 说明 例题 例10 1 例10 2 例10 3 例10 4 例10 5 未尝试 例10 6 例10 7 例10 8 例10 9 例10 10 例10 11 例10 12 例10 13 例10 14 例10 15 例10 16 未尝
  • platform设备驱动实验

    一 Linux 驱动的分离与分层 1 驱动的分隔与分离 传统驱动编写思路如下图 下图这个就是 Linux 中的总线 bus 驱动 driver 和设备 device 模型 也就是常说的驱动分离 2 驱动的分层 分层的目的也是为了在不同的层处
  • Golang 中 sync/atomic 包的原子操作

    背景 Go中多协程的情况下 要保证操作的原子性 一般要使用RWMutex或者Mutex 但是锁使用起来比较复杂 还要考虑lock 和unlock 顺序和成对出现 不注意就容易出错 于是在sync atomic包中 把我们常用的一些操作封装成
  • JDBC技术获取数据库时间字段

    MySQL数据库中datetime类型格式为0000 00 00 00 00 0 0 如2014 05 01 12 30 00 0 查询到了数据库中的结果集 ResultSet的对象后 要获取完全的时间需要用ResultSet对象的getT
  • Django实战之文件上传下载

    项目介绍 最近学习django 通过文件上传下载这个小项目 总结下常用的知识点 做这个案例我有以下需求 1 要支持一次上传多个文件 2 支持上传后记录上传的数据以及列表展示 3 支持下载和删除文件记录 效果展示 数据库记录 开发步骤 创建项
  • 数据挖掘入门

    目录 前言 简介 挖掘对象 挖掘步骤 分析方法 常用算法 神经网络法 决策树法 遗传算法 粗糙集法 模糊集法 关联规则法 面对的挑战 前言 不知不觉就步入了研究生的大门 蓦然回首 大学四年时光如流水 正如歌词唱的那样 转眼就各奔东西 工作的
  • R语言grep函数用法

    通常被用来进行数值计算比较多 字符串处理相对较少 而且关于字符串的函数也不多 用得多的就是substr strsplit paste regexpr这几个了 实际上R关于字符串处理的功能是非常强大的 因为它甚至可以直接使用Perl的正则表达
  • PYTHON自动化框架总结:SELENIUM+PYTEST+ALLURE

    文章目录 一 PYTEST 1 使用pytest执行测试需要遵循的规则 2 数据驱动 3 pytest fixture 4 结合ALLURE报告 5 pytest assume 二 接口自动化内容 1 接口自动化重要性 2 接口自动化平台的
  • CTFshow web入门——文件上传

    目录 Web 151 考点 后端无验证 前端校验 Web 152 考点 绕过前端校验 Web 153 考点 文件后缀名 黑名单 Web 154 155 考点 文件内容过滤 过滤关键字是php Web 156 158 Web159 Web 1
  • 解决:Hbuilder工具点击发行打包,一直报尚未完成社区身份验证,请点击链接xxxxx,项目xxx发布H5失败的错误。[Error]尚未完成社区身份验证

    全世界任何漂亮有魅力的女生 都不会因为你送她汉堡或奶茶而对你说我爱你 明白吗 你应该带她做一些特别的事情 让她感动 日常笔记 解决 Hbuilder工具点击发行打包 一直报尚未完成社区身份验证 请点击链接xxxxx 项目xxx发布H5失败的
  • QT之运行exe文件时缺少xxx.dll文件

    使用QT最大的好处和方便的可能就是他的输出为exe文件 将这个文件直接复制到其他人的电脑上便可以直接运行 十分的便捷 但是我们有时候我们发现我们自己写的QT生成的exe文件没有办法直接在自己的电脑上打开 或者有时候copy别人的项目时 发现
  • java中的几种加密方式

    第一种 DES加解密 import java security Key import java security SecureRandom import javax crypto Cipher import javax crypto Key
  • React-resize窗口监听

    import React useState useEffect useCallback from react 创建自定义函数来写入方法 function UseWillSize const size setSize useState wid