React中Hooks封装倒计时60S

编程入门 行业动态 更新时间:2024-10-11 05:27:43

React中Hooks封装<a href=https://www.elefans.com/category/jswz/34/1769463.html style=倒计时60S"/>

React中Hooks封装倒计时60S

使用hooks对倒计时进行封装(TS版),结合useState,useEffect,useRef 以及定时器setInterval

  1. useState对count进行数据初始化,后边结合setcount()方法对count进行修改
  2. useRef是作为定时器的一个Id,便于后面清除定时器
  3. 第一次的useEffect是作为定时器的启动,传入一个空数组【】,不依赖任何项,只调用一次
  4. 第二次的useEffect是作为清除定时器使用,依赖于count的变化,故传入一个包含count的数组
import {useState,useEffect,useRef} from 'react'export default function useTimes(start:number) {const [count,setcount] =useState(start)const timerRef=useRef<NodeJS.Timer>()useEffect(()=>{timerRef.current=setInterval(()=>{setcount(c=>c-1)},1000)//清除副作用return ()=>{clearInterval(timerRef.current)}},[])useEffect(()=>{if(count===0){clearInterval(timerRef.current)}},[count])return count
}

更多推荐

React中Hooks封装倒计时60S

本文发布于:2024-02-07 08:32:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754507.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:倒计时   React   Hooks

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!