美文网首页
自定义一个 Hooks

自定义一个 Hooks

作者: bestCindy | 来源:发表于2021-01-25 16:14 被阅读0次

我们要编写一个自定义的 hooks,这个 hooks 的功能是获取窗口的大小,名字叫做 useWinSize

注意,hooks 的名字需要 use 开头

import { useState, useEffect, useCallback } from 'react';

function useWinSize() {
    const [size, setSize] = useState({
        width: document.documentElement.clientWidth,
        height: document.documentElement.clientHeight
    })

    const onResize = useCallback(() => {
        setSize({
            width: document.documentElement.clientWidth,
            height: document.documentElement.clientHeight
        })
    }, [])
    useEffect(() => {
        window.addEventListener('resize', onResize)
        return () => {
            window.removeEventListener('resize', onResize)
        }
    }, [])

    return size;

}

function Example() {
    const size = useWinSize();
    return (
        <p>页面的 Size:{size.width} x {size.height}</p>
    )
}

export default Example;

运行出来:


相关文章

网友评论

      本文标题:自定义一个 Hooks

      本文链接:https://www.haomeiwen.com/subject/siruzktx.html