React监听窗口宽度变化 触发resize(Hooks版本)

需求场景:

项目中有些样式,需要监听窗口大小更改,做一些自适应处理

Code:

javascript 复制代码
    const [screenW, setScreenW] = useState(document.documentElement.clientWidth || document.body.clientWidth)

	// 一些用到的需要自适应的变量
    const middleWidth = useMemo(() => {
        if (screenW < 1200) {
            return screenW - 64
        } else {
            return screenW - 256
        }
    }, [screenW])

    useEffect(() => {
        window.addEventListener("resize", handleWindowResize)
        return () => {
            window.removeEventListener("resize", handleWindowResize)
        }
    }, [])

    const handleWindowResize = () => {
        setScreenW(document.documentElement.clientWidth || document.body.clientWidth)
    }
相关推荐
ynchyong18 分钟前
微信小程序启动顺序遇到的一个坑
前端·微信小程序
用户2333768521820 分钟前
接口卡死排查实录-缺失return的UB死循环
前端·后端
光影少年31 分钟前
如何实现RN 多环境、多渠道打包
前端·react native·react.js
闲坐含香咀翠1 小时前
百万行数据透视表,我是怎么把 Vue 响应式开销砍到零的
前端·vue.js·性能优化
xiaopang1 小时前
小红书小组件(miniwidget)开发实战:单页面viewState切换架构
前端
labixiong1 小时前
告别scroll 监听:CSS 滚动驱动动画,主线程堵死也仍跟手
前端·css·html
用户302822530681 小时前
别让 Agent 被 Webhook 叫醒就开工:实现一个幂等启动层
javascript
云析赢指标公式网41 小时前
文华WH6布林轨道均线强弱共振指标公式
前端·算法
许彰午1 小时前
34-安全复盘96个问题
前端·vue.js·安全
妙码生花2 小时前
PHP 各框架下和 Go 的性能比较
前端·后端·go