react自定义hook的使用方法

什么是自定义hooks呢?

可以将组件逻辑提取到可重用的函数中的Hook。

import React,{ useState,useEffect } from 'react'

// 自定义hooks(屏幕的宽)
const useWidth=()=>{
    const [width,setWidth]=useState(window.innerWidth)
    const onResize=()=>{
        setWidth(window.innerWidth)
    }

    useEffect(()=>{
        window.addEventListener('resize',onResize)
        return ()=>{
            window.removeEventListener('resize',onResize)
        }
    },[])
    return [width]
}

//自定义hooks(鼠标的位置)
const useMone=()=>{
    const [xstate,setXstate]=useState(0)
    const [ystate,setYstate]=useState(0)
    const onMove=(MouseEvent)=>{
        console.log(MouseEvent);
        setXstate(MouseEvent.x)
        setYstate(MouseEvent.y)
    }
    useEffect(()=>{
        document.documentElement.addEventListener('mousemove',onMove)
        // Document.documentElement 是一个会返回文档对象(document)的根元素的只读属性(如 HTML 文档的 <html> 元素)。
        return ()=>{
            document.documentElement.removeEventListener('mousemove',onMove)
        }
    },[])
    return [xstate,ystate]
}

export default function Myhooks() {
    const [width]=useWidth(0)//浏览器窗口的宽度
    const [xstate,ystate]=useMone(0)
    console.log(xstate,ystate);
  return (
    <div>
        {width}
        <hr/>
        鼠标的位置:{xstate},{ystate}
    </div>
  )
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值