react+TS——hook初体验

本文介绍了ReactHooks中的常用功能,包括useState用于状态管理,useEffect用于副作用处理,以及如何利用useEffect实现组件挂载和卸载的钩子。此外,还展示了如何结合useState和useEffect实现防抖功能。
摘要由CSDN通过智能技术生成

  学完了react,还有ts,开始了react和ts的学习,刚开始学的是类式组件,现在都是用函数式组件,在学习的过程中也是愈发体会到hook的可玩性和重要性,这里就来稍微总结一下常见hook的用法。

一、useState
  const [count, setCount] = useState(0);
/*
count的值是0
setCount是改变值的方法
*/
二、useEffect
//第一个参数接收一个回调函数,第二个参数接收要监视的值(可以是一个数组)
useEffect(callback,[])

useEffect需要注意的事

  1. 如果回调函数返回一个函数,该返回的函数的执行时机是下一次执行该effect函数之前执行
  2. 如果监视一个非useState生成的引用类型的数据,可以会造成死循环(原因是在执行的比较的时候只会单纯的比较对象的地址值,并不会像useState生成的引用数据类型数据那样比较)
三、使用useEffect实现mounted和unmounted钩子函数
const useMount = (callback: () => void, unmountedCallback: () => void) => {
  useEffect(() => {
    callback()
    return unmountedCallback
    //这里依赖是一个空数组会在组件渲染返回一个函数会在组件卸载的时候执行
  }, [])
}
四、使用useEffect和useState实现防抖
const useDebounce = <V>(value: V, delay?: number): V => {
  const [debounceValue, setDebouncedValue] = useState(value)
  useEffect(() => {
    // 每次在value变化以后设置一个定时器
    const timeout = setTimeout(() => {
      setDebouncedValue(value)
    }, delay)
    // 每次在上一个useEffect处理完以后再运行(这里返回的一个函数会执行当前 effect 之前对上一个 effect 进行清除)
    return () => clearTimeout(timeout)
  }, [value, delay])
  return debounceValue
}

这次就先简单分享这么多吧,hook的用法挺多的,不过我感觉我现在理解的并且常用的目前只有这些,之后再学习的多一点再来个大总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值