【react】react hooks 重构

这篇博客介绍了如何在React中编写和使用自定义钩子,包括基础款的`useMouseTrack`,用于追踪鼠标位置,以及升级款的`useUrlLoader`,用于异步加载数据。`useMouseTrack`通过监听mousemove事件来更新状态,而`useUrlLoader`借助axios库实现数据的加载和加载状态管理。这两个组件提升了代码的复用性和可维护性。
摘要由CSDN通过智能技术生成

由于重复业务。需要抽取一些通用的业务组件

在这里插入图片描述
举两个栗子
基础款:

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

const useMouseTrack=()=>{
  const [postion, setpostion] = useState({x:0,y:0})
  useEffect(()=>{
    const hear=(e:MouseEvent)=>{
      console.log(1)
      setpostion({x:e.clientX,y:e.clientY})

    }
  
    document.addEventListener('mousemove',hear)
    return()=>{
      document.removeEventListener('mousemove',hear)
    }
  },[])
  return postion
}
export default useMouseTrack

在app.js文件里引用并使用
在这里插入图片描述
升级款:

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

const useUrlLoader=(url:string,desp:any[]=[])=>{
  const [data,setData]=useState<any>(null)
  const [loading,setLoading]=useState(false)
  useEffect(()=>{
    setLoading(true)
    axios.get(url).then(res=>{
      setData(res)
      setLoading(false)
    })
  },desp)
  return [data,loading]
}
export default useUrlLoader

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值