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

产品经理网站开发需求代发百度首页排名

产品经理网站开发需求,代发百度首页排名,河北病例最新情况,a站下载安装在 React 中操作 DOM 元素时#xff0c;使用 document.querySelector 以及全局事件监听#xff08;如 addEventListener#xff09;并不推荐#xff0c;因为这些方法无法与 React 的生命周期很好地协调#xff0c;可能会导致内存泄漏或影响性能。 可以改为使用 useRef 和…在 React 中操作 DOM 元素时使用 document.querySelector 以及全局事件监听如 addEventListener并不推荐因为这些方法无法与 React 的生命周期很好地协调可能会导致内存泄漏或影响性能。 可以改为使用 useRef 和 useEffect 来处理 DOM 元素以及事件监听。 React 代码 import React, { useRef, useEffect, useState } from react; import styles from ./index.module.less;const ComponentName () {const containerRef useRef(null);const leftPanelRef useRef(null);const rightPanelRef useRef(null);const dividerRef useRef(null);const [isDragging, setIsDragging] useState(false);useEffect(() {const handleMouseDown () {setIsDragging(true);};const handleMouseMove (e) {if (!isDragging) return;const containerRect containerRef.current.getBoundingClientRect();const offsetX e.clientX - containerRect.left;const leftWidth (offsetX / containerRect.width) * 100;const rightWidth 100 - leftWidth;leftPanelRef.current.style.width ${leftWidth}%;rightPanelRef.current.style.width ${rightWidth}%;};const handleMouseUp () {setIsDragging(false);};const divider dividerRef.current;divider.addEventListener(mousedown, handleMouseDown);document.addEventListener(mousemove, handleMouseMove);document.addEventListener(mouseup, handleMouseUp);// 清理事件监听器return () {divider.removeEventListener(mousedown, handleMouseDown);document.removeEventListener(mousemove, handleMouseMove);document.removeEventListener(mouseup, handleMouseUp);};}, [isDragging]);return (div className{styles.container} ref{containerRef}div className{styles.leftPanel} ref{leftPanelRef}/divdiv className{styles.divider} ref{dividerRef}/divdiv className{styles.rightPanel} ref{rightPanelRef}/div/div); };export default ComponentName; 样式css .container {display: flex;width: 100%;height: 100vh; position: relative; }.leftPanel {width: 50%;background-color: lightblue; }.rightPanel {width: 50%;background-color: lightgreen; }.divider {width: 5px;background-color: gray;cursor: ew-resize; position: relative; } 注释 useRef用来获取 DOM 元素引用如 containerRef、leftPanelRef、rightPanelRef 和 dividerRef。useState用来存储拖动的状态 isDragging。useEffect用于在组件挂载时添加事件监听器并在组件卸载时清理这些监听器。这样可以避免内存泄漏或重复监听。清理事件确保在组件卸载时移除 mousemove 和 mouseup 的事件监听避免意外行为。getBoundingClientRect() 是 JavaScript 中用于获取元素的边界信息的方法。它返回一个 DOMRect 对象包含该元素相对于视口的位置和大小信息包括 top, right, bottom, left, width, 和 height 等属性。
http://www.w-s-a.com/news/967768/

相关文章:

  • 网站建设哪个公司最好shift wordpress
  • 公司网站建设功能介绍室内设计学习
  • 做网站策划容易遇到哪些问题沈阳公司网站制作
  • 做php网站都用框架吗网站备案当面核验拍摄照片
  • 泉州企业自助建站兰州最好的互联网公司
  • 监察部门网站建设方案网站seo技术教程
  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息
  • 秦皇岛网站建设服务聊城做网站的公司资讯
  • 30岁转行做网站设计丰涵网站建设
  • 山东省和住房建设厅网站首页开发商不按时交房可以退房吗
  • asp网站怎么做404页面跳转本地南通网站建设
  • 点击网站出现微信二维码的链接怎么做申请网站空间怎么做
  • 网站开发的论文题目广告设计排行榜
  • 网络营销网站 功能南京h5制作公司
  • 做网站的费用的会计分录合肥做网站推广哪家好
  • 电子商城网站开发怎么wordpress用的什么主题
  • 榆林电商网站建设网上做试卷的网站
  • 文山网站建设代理中公教育培训机构官网
  • 郑州it培训机构有哪些上海外贸网站seo
  • dw做网站的实用特效广东住房与城乡建设厅网站
  • 模板网站 动易哪方面的网站
  • 怎么给网站做外链邵连虎郑州做网页的公司
  • 重庆网站开发哪家好宁波网站建设caiyiduo
  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统