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中的数据