当前位置: 首页 > wzjs >正文

wordpress访问有的目录500杭州排名优化软件

wordpress访问有的目录500,杭州排名优化软件,汉中市建设工程造价信息网,上海建筑业网证书查询在日常开发场景中,监听窗口变化是一个比较常见又很重要的业务功能,其实实现起来也很简单,今天就来记录一下具体的实现以及注意事项。 实现思路 在 React 中,可以通过监听 window 的 resize 事件来检测可视区域(viewp…

在日常开发场景中,监听窗口变化是一个比较常见又很重要的业务功能,其实实现起来也很简单,今天就来记录一下具体的实现以及注意事项。

实现思路

在 React 中,可以通过监听 window 的 resize 事件来检测可视区域(viewport)的宽度变化。

其中实现的关键为:

  • window.innerWidth:获取浏览器可视区域的宽度
  • window 的 resize 事件:监听窗口大小的变化,但要注意防抖,避免触发性能问题。虽然 useEffect 只执行两次,但它注册的 resize 事件回调会在每次窗口变化时触发,而这个触发频率可能极高
  • 在组件销毁时正确清理监听器,移除 resize 事件监听,避免内存泄漏。

具体实现

import React, { useEffect, useState } from 'react';export default function ViewportWidthTracker() {const [width, setWidth] = useState(window.innerWidth);useEffect(() => {// 监听窗口大小变化let timeoutId = null;const handleResize = () => {// 每次触发 resize 时清除之前的定时器clearTimeout(timeoutId);// 设置新的定时器,延迟 150ms 执行timeoutId = setTimeout(() => {setSize({ width: window.innerWidth, height: window.innerHeight });}, 150);};window.addEventListener('resize', handleResize);// 清理监听器return () => {window.removeEventListener('resize', handleResize);};}, []); // 空依赖数组确保只在组件挂载和卸载时运行return (<div><h1>当前可视区域宽度: {width}px</h1></div>);
}

注意事项

  1. SSR 环境问题:在服务端渲染(如 Next.js)中,window 对象不存在。可通过条件判断避免错误
useEffect(() => {if (typeof window === 'undefined') return;// 监听逻辑
}, []);
  1. 组件卸载时清理:必须在 componentWillUnmount 或 useEffect 返回的清理函数中移除事件监听,防止内存泄漏。

封装自定义 hook

这个场景比较常见,可以封装为自己的 hook,方便后续调用。

import { useState, useEffect } from 'react';function useWindowSize() {const [size, setSize] = useState({ width: 0, height: 0 });useEffect(() => {// 监听窗口大小变化let timeoutId = null;const updateSize = () => {// 每次触发 resize 时清除之前的定时器clearTimeout(timeoutId);// 设置新的定时器,延迟 150ms 执行timeoutId = setTimeout(() => {setSize({ width: window.innerWidth, height: window.innerHeight });}, 150);};window.addEventListener('resize', updateSize);updateSize();return () => window.removeEventListener('resize', updateSize);}, []);return size;
}// 使用自定义 Hook
function MyComponent() {const size = useWindowSize();return (<div>当前窗口: {size.width} x {size.height}</div>);
}

在这里插入图片描述

http://www.dtcms.com/wzjs/325304.html

相关文章:

  • 建站成功是怎么回事广州优化疫情防控举措
  • 做淘宝客网站多少钱吉林seo基础知识
  • 西宁网站seo公司地推拉新接单平台
  • 怎么做网站公众号营业推广是什么意思
  • 全网seo是什么意思seo推广代运营
  • 网站建设版块分类网络营销方案策划书
  • java script 做网站seo臻系统
  • 代做网站的公司百度贴吧热线客服24小时
  • 公司网站网页设计网络营销策划书
  • 独立域名网站建设方象科技的服务范围
  • 珠海十大网站建设公司哪家好如何推广自己产品
  • 关于对网站建设工作情况的通报百度指数api
  • 中国做机床的公司网站今日国内热点新闻头条事件
  • 学校网站怎么做注册域名要钱吗
  • wordpress oday家庭优化大师免费下载
  • 乌克兰集团网站建设百度推广创意范例
  • 有广告的网站新闻源发稿平台
  • 做饲料机械的网站百度推广关键词和创意
  • asp网站如何做伪静态手机百度app下载
  • 微信商城网站sem工作原理
  • 网站建设创新百度搜索大数据怎么查
  • 温州网站建设前十公司中牟网络推广
  • 政府网站服务建设的网站注册页面
  • 在建设一个公司网站多少钱搜索引擎优化的具体操作
  • 扬州市建设工程造价管理站网站个人主页网页设计模板
  • 厦门知名网站建设手机打开国外网站app
  • cms建站系统哪个好免费建站哪个网站最好
  • 用织梦做的网站下载南昌seo专业团队
  • 营销型网站页面布局谷歌推广教程
  • office文件包里的做网站软件网络销售管理条例