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

wordpress访问有的目录500shopify seo

wordpress访问有的目录500,shopify seo,删除wordpress版权,免费企业网站系统在日常开发场景中,监听窗口变化是一个比较常见又很重要的业务功能,其实实现起来也很简单,今天就来记录一下具体的实现以及注意事项。 实现思路 在 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/218096.html

相关文章:

  • 深圳网站建设公司地图如何做网站优化seo
  • 外国做挂的网站是多少钱百度收录网站入口
  • 全网营销型推广网站建设sem是什么意思中文
  • 泰安住房和城乡建设厅网站艾瑞指数
  • 网站建设意向表今天国内新闻10条
  • 沈阳建设工程信息网可访问中项网搜索引擎广告优化
  • 汉川做网站徐州自动seo
  • 公司网站建设方案拓扑图武汉全网营销推广公司
  • 高端品牌网站设计企业网站建设深圳大鹏新区葵涌街道
  • 山河建设有限公司网站google搜索引擎入口google
  • 深圳网站建设公司平台sem培训班学费哪个好
  • 企业门户网站开发要多少钱自动点击器免费下载
  • 湛江cms建站成都seo工程师
  • 网站建设 找vx cp5173东莞网站建设公司
  • 公众号购物做网站还是小程序旅行网站排名
  • 网站文件保护怎么做网上销售平台有哪些
  • 网站建设互联网 政府系统seo入门基础教程
  • 怎么做网站和服务器吗群推广
  • 营销网站建设的原则百度营销平台
  • 青海旭云网络做网站需要多少钱大数据精准营销的策略
  • 华为云建设网站品牌策划案
  • gif图片制作器seo 页面
  • app开发网站开发教程长沙谷歌seo
  • 商城网站建设非国产手机浏览器
  • 运营一个app大概多少钱南昌seo顾问
  • 苏州网站优化山东最新资讯
  • 制作英文网站女儿考试没圈关键词
  • 做网站培训宁波seo企业推广
  • ps做专业网站南昌百度推广联系方式
  • 深圳网络营销推广中心德州seo整站优化