在 React 中如何使用定时器

这篇具有很好参考价值的文章主要介绍了在 React 中如何使用定时器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在React中使用定时器通常有两种方式:使用setIntervalsetTimeout函数。

  1. 使用setInterval函数:

首先,在组件中导入useEffectuseState函数:

       import React, { useEffect, useState } from "react";

在组件中声明一个状态变量来存储定时器的ID:

        const [timerId, setTimerId] = useState<number | null>(null);

在组件的useEffect钩子函数中启动定时器:

       useEffect(() => {
         const id = setInterval(() => {
           // 定时器执行的代码
         }, 1000);
         setTimerId(id);
         return () => {
           clearInterval(timerId); // 组件卸载时清除定时器
         };
       }, []);

在上述代码中,通过useEffect中的一个空数组([])作为依赖项,确保只在组件挂载时启动一次定时器,并使用clearInterval函数在组件卸载时清除定时器。

  1. 使用setTimeout函数:

首先,在组件中导入useEffectuseState函数:

        import React, { useEffect, useState } from "react";

在组件中声明一个状态变量来存储定时器的ID:

        const [timerId, setTimerId] = useState<number | null>(null);

在组件的useEffect钩子函数中启动定时器:

       useEffect(() => {
         const id = setTimeout(() => {
           // 定时器执行的代码
         }, 1000);
         setTimerId(id);
         return () => {
           clearTimeout(timerId); // 组件卸载时清除定时器
         };
       }, []);

在上述代码中,通过useEffect中的一个空数组([])作为依赖项,确保只在组件挂载时启动一次定时器,并使用clearTimeout函数在组件卸载时清除定时器。

请根据你的具体需求选择适合的定时器函数,并根据组件的生命周期来启动和清除定时器。

实际案例:

import { useEffect, useState } from "react";

const TimerPage = () => {
  const [changeNum, setChangeNum] = useState<any>(null);
  const [getChangeNum, setGetChangeNum] = useState<any>(null);

  const initiate = () => {
    let num = 0;
    const id = setInterval(() => {
      // 定时执行的代码
      num++;
      if (num == 11) {
        // clearTimeout(id); // 在 getChangeNum 等于 10 时关闭定时器
        num = 0;
      }
      setGetChangeNum(num);
    }, 1000); // 每隔1秒执行一次
    setChangeNum(id);
  };

  return (
    <div className="box">
      <p onClick={initiate}>显示数字 {getChangeNum} </p>
    </div>
  );
};

export default TimerPage;
  1. 首先,声明了一个变量num并初始化为0,用来存储递增的数字。
  2. 然后,使用setInterval函数创建了一个定时器。setInterval函数接受两个参数:回调函数和时间间隔。在这里,回调函数为一个箭头函数,用于执行定时的递增操作。
  3. 在回调函数中,num自增1,表示递增的数字。当num等于11时,通过条件判断将num重置为0,实现周期递增的效果。
  4. 在回调函数中,使用setGetChangeNum函数将递增的结果num更新到getChangeNum状态变量中,以便将其显示在文本段落元素中。
  5. setInterval的第二个参数为时间间隔,这里设置为1000毫秒,即每隔1秒执行一次回调函数。
  6. 最后,使用setChangeNum函数将定时器的ID存储到changeNum状态变量中,以便在需要的时候清除定时器。

在点击文本段落元素时,initiate 函数会被调用,定时器开始启动,每隔1秒递增数字并更新到状态变量中。文本段落元素会显示递增的数字。文章来源地址https://www.toymoban.com/news/detail-690588.html

到了这里,关于在 React 中如何使用定时器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js:定时器setInterval、clearInterval的使用

    定时器:可以在固定时间间隔,重复调用一个函数 文档 https://developer.mozilla.org/zh-CN/docs/Web/API/setInterval 常用的语法 为了避免this指向问题,一般使用箭头函数 输出结果

    2024年02月04日
    浏览(47)
  • JavaScript定时器

    JavaScript定时器有两种, setTimeout():指定时间后执行一段代码(延迟执行)。 setInterval():每隔一段时间执行一段代码(间隔执行)。 1、setTimeout() 定时器 语法: setTimeout()方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。 具体用法: 定时五秒钟出现弹窗‘

    2024年02月07日
    浏览(44)
  • javaScript定时器函数

    js 定时器有以下两个方法: setInterval() ,setTimeout() 作用  这个函数可以将一个函数每隔一段时间执行一次 返回值  返回一个Number类型的数据,这个数字用来作为定时器的唯一标识  可以用clearInterval()关闭setInterval()

    2024年02月08日
    浏览(70)
  • JavaScript的定时器用法详解

    ●在 js 里面,有两种定时器,倒计时定时器 和 间隔定时器 ○倒计时定时器也叫一次性定时器或者叫延时定时器 ○间隔定时器也叫间歇定时器或者叫反复性定时器 倒计时定时器 ●倒计时多少时间以后执行函数 ●语法: setTimeout(要执行的函数,多长时间以后执行) ●会在你设

    2024年02月14日
    浏览(44)
  • js实现定时器

    用原生js实现一个倒计时效果.最下面有全部源码,需要自取 js语法 : setTimeout :定时器 document.getElementById :Document的方法 getElementById()返回一个匹配特定 ID的元素。由于元素的 ID 在大部分情况下要求是独一无二的,这个方法自然而然地成为了一个高效查找特定元素的方法。 remove

    2024年02月11日
    浏览(76)
  • js 定时器

    JavaScript 中的定时器(Timer)是一种机制,用于在指定的时间间隔之后执行代码或者在指定的时间点执行代码。它可以用来实现延迟执行、周期性执行等需求。 JavaScript 提供了两个主要的定时器函数: setTimeout() : setTimeout() 函数用于在指定的时间延迟后执行一次代码。 第一个

    2024年02月10日
    浏览(58)
  • JavaScript定时器(setTimeout和setInterval)的用法技巧

    1.满足特定条件时才执行后续步骤。 核心代码: 案例图片: 场景解析:诸如 Promise 的情形,只有接口请求成功后才会执行下一步。有时候不方便使用Promise或者特定情形下,可以借助此定时器( setInterval )方法解决。 友情提醒:业务处理完成后,一定要 清空 ( clearInterval

    2024年02月15日
    浏览(47)
  • JS 定时器setInterval()

    过多的就不描述了,可以直接参考官方文档: 官方文档:https://developer.mozilla.org/en-US/docs/Web/API/setInterval 参考文档:https://www.jianshu.com/p/55b4eb04b1d3 直接上干货 setInterval(参数1,参数2) setInterval(方法名, 1000 * 60 * 1); 描述:定时执行 间隔执行 注意: 1.参数1可以是一个匿名函数 也可以是

    2024年02月13日
    浏览(57)
  • 关于JS定时器的整理

    在JS中定时器有非常大的作用,例如: 执行延迟操作:使用setTimeout可以在一定的延迟后执行特定的代码。这对于需要在一定时间后执行某些操作的情况非常有用,例如延迟显示提示信息、执行动画效果等。 定期刷新数据:使用 setInterval 可以定期执行某段代码,例如定时从服

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包