在反应中计算元素尺寸的自定义钩子
在反应中计算元素尺寸的自定义钩子
在某些情况下,我们可能需要知道 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 版权协议,转载请附上原文出处链接和本声明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」