在反应中计算元素尺寸的自定义钩子

在反应中计算元素尺寸的自定义钩子

在某些情况下,我们可能需要知道 react 中没有给定宽度和高度的元素的大小。

 从“反应”导入 { useState, useEffect } 常量 useContainerDimensions = containerRef => {  
 常量 getDimensions = () => ({  
 宽度:containerRef.current.offsetWidth,  
 高度:containerRef.current.offsetHeight  
 }) const [尺寸,setDimensions] = useState({width: 0,height: 0}) 使用效果(()=> {  
 常量句柄大小 = () => {  
 设置维度(获取维度())  
 } 让维度超时 = setTimeout(() => {  
 if(containerRef.current) {  
 设置维度(获取维度())  
 }  
 }, 100) window.addEventListener("resize", handleResize) 返回 () => {  
 清除超时(维度超时)  
 window.removeEventListener("resize", handleResize)  
 }  
 }, [容器引用]) 返回尺寸  
 } 导出默认使用ContainerDimensions

上面的自定义钩子将计算元素的尺寸并返回它,如果我们通过 参考 的一个元素。每当屏幕尺寸发生变化时,它都会重新计算尺寸。

为了通过包含像素来获取宽度和高度,可以使用 clientWidth 和 clientHeight 来代替 offsetWidth 和 offsetHeight。

例子

 导出默认函数 App() {  
 常量 cartItemsContainerRef = useRef(null)  
 //容器的尺寸可以从宽高得到  
 常量 { 宽度,高度 } = useContainerDimensions(cartItemsContainerRef) 返回 (  
 <div ref={cartItemsContainerRef}>  
 ...  
 </div>  
 )  
 }

谢谢阅读。关注我了解更多。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/18574/24280609

posted @   哈哈哈来了啊啊啊  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示