当前位置: 代码迷 >> 综合 >> 定时器setTimeout、setInterval
  详细解决方案

定时器setTimeout、setInterval

热度:93   发布时间:2023-11-24 18:28:26.0

setTimeout:几秒后执行一次(类似于倒计时)

写法有:"一秒后执行"

1.setTimeout(函数名,1000);//这个函数名不带参数

2.setTimeout ('test()',1000);//这个函数名的参数可带可不带

3.setTimeout (function(){},1000);//这个函数为匿名函数

setInterval:几秒后循环执行,间隔时间到来时反复执行(类似于循环定时器)

它们两个的区别就是:倒计时定时器是在指定时间到达后触发事件。循环定时器是在间隔时间到来时反复触发事件

注意:

由于定时器在调用的时候,都会返回一个整形的数字,该数字代表定时器的序号,即第几个定时器,所以清除定时器要借助于这个返回的数字。

清除的方法:

clearTimeout(obj)、clearInterval(obj)

在react中,用class类方式中:在组件挂载(componentDidMount())时,调用定时器。然后在组件清除(componentWillUnmount())时,清除定时器。

在hook方式中,首先定义一个常量定时器,即:const timer= useRef();,在useEffect()中清除定时器,保证内存不会泄露,即:

return ()=> { clearInterval(timer.current); };进行清除定时器

在需要使用定时器的地方使用定时器,直接调用state中的数据

  相关解决方案