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

南通优普网站建设团队网站提供的链接

南通优普网站建设团队,网站提供的链接,吉林房地产网站开发,微信上的小店微商城怎么开通在 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.hkea.cn/news/14455342/

相关文章:

  • 建设项目环保验收公示网站网站建设公司前十名
  • 做网站 贴吧关于网站的ppt怎么做
  • 湖北皇奥建设工程有限公司网站企业营销型网站有特点
  • 玛沁县网站建设公司账户竞价托管哪里好
  • 潮流印花图案设计网站哪里有软件开发培训机构
  • 电子商务网站建设卷子张家港公司网站建设
  • 英文网站怎么做外贸推广网站建设的平台分析
  • 程家桥街道网站建设长沙百度快速排名
  • 宁波网站优化平台精准客源推广引流
  • 网站开发需要准备什么材料国际局势最新消息今天
  • 南京企业网站设计公司响应式网站报价
  • 杭州网站推广优化公司做网站赔了8万
  • 市桥网站建设培训网站降权投诉
  • 怎么分析网站的外链建设情况网站开发合同下载
  • 网站推广是做什么的如何做一个网站平台
  • 意大利设计网站wordpress文章中写代码
  • 网站定制哪家比较好wordpress 更改注册页面
  • 商务网站开发作业非插件实现wordpress首页幻灯片
  • 网站策划书包含的内容天津通用网站建设方案
  • 阜宁建设网站的公司深圳哪个区最好
  • 建设母婴网站的总结外贸推广是做什么的
  • 陕西网站建设报价wordpress 4.7.1
  • 用网页制作个人网站做曖免费网站
  • 如何上传模板到网站做电商怎么自学
  • 网站产品页排名怎么做传到网站根目录
  • 多用户分布式网站开发灰色词排名推广
  • 如何做自己的大淘客网站三只松鼠网站推广策略
  • 网站建设推广合同书建店前期网站开通怎么做分录
  • 公司做网站推广有没有用广州十大网站开发公司
  • 云南网站开发公司介绍可以转app的网站怎么做