【taro react】 ---- 常用自定义 React Hooks 的实现【二】

news/2025/2/5 8:01:13/

6. useInterval 实现

一个可以处理 setInterval 的 Hook。

6.1 实现原理

  1. 使用 useMemoizedFn 创建一个保存 useInterval 执行的回调函数;
  2. 使用 useRef 创建一个执行 setInterval 时返回的变量的保存变量,也就是用于保存 setInterval 返回的 timer ,用于清除计时器;
  3. 使用 useCallback 创建一个清除计时器的函数 clear,由于第二个参数传入的是 [],所以就和 useMount 一样,只执行一次;
    3.1 判断第二步中的 timerRef.current 是否存在;
    3.2 存在说明计时器存在,就执行 clearInterval 清空计时器;
  4. 使用 useEffect 创建一个依赖于 delay【间隔时间】,immediate【是否在首次渲染时立即执行】的副作用;
    4.1 判断 delay【间隔时间】是否是数字或者是小于0的数字,是就不执行;
    4.2 判断 immediate【是否在首次渲染时立即执行】是否 true,true就立即执行第一步中保存的 timerCallback 回调;
    4.3 执行计时器 setInterval 并保存其返回 timer;
    4.4 卸载时执行清空计时器函数;
  5. 最后将计时器函数返回,可以在调用 hook 的时候执行清空计时器。

6.2 实现代码

import { useMemoizedFn } from

http://www.ppmy.cn/news/238002.html

相关文章

个人电脑做网站

个人电脑做服务器,个人电脑做网站服务器,个人电脑搭建服务器……在个人电脑上做网站应用,并让外网访问的实现过程: 1.安装NAT123域名解析软件客户端。 2.启用NAT123,添加域名解析映射。设置自己的域名与网站应用对应…

电脑硬件销售网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字):

网店卖什么产品最好卖?

一般在做电商准备开网店的时候都要先想好自己的定位,卖什么产品很重要,在选择产品的时候相信大家都比较的纠结 据统计,今年618销售额排名前五的是家用电器、手机通讯、美妆、服装配饰和食品饮料,销售增速前五的是家用电器、美妆、…

买电脑经历

上周末我跟朋友一起去百脑汇那边买电脑,她是要买华硕的,本来是在网上看好一台的,但是她想去实体店看看,去了百脑汇,我们也不咋懂的,然后在那边转了好几个店,里面的人太吓人了,刚走到…

用自家自己的电脑做网站服务器建立个人网站

引言:个人电脑做服务器,个人电脑做网站服务器,个人电脑做WEB服务器,自己的电脑做服务器,家用电脑做服务器,如何用电脑做服务器…… 自已有调整的网络环境,电脑配置也不错,如何在自己…

网站做好后,不想买服务器可以用自己的电脑当服务器么?

首先你有这种想法是可以的,但是实际上要看你的目的是什么,一个站点的服务器需要很多因素来保证它完美地运行和稳定,访问量一大我们自己的电脑以及带宽都无法提供稳定的需求。 但是身为一个技术出身的人,就是不喜欢花钱买什么云服务…

如何本地电脑和云服务器搭建个人网站

声明:本文章只提供思路,具体实施过程后文有详细链接。 需求:近期想弄一个个人站点,放点自己写的小项目,最终通过公网访问,做完之后总结了两个方案:1、本地电脑,需要内网穿透的工具&…

用自己电脑做服务器,建个人网站

一. 购买域名 在阿里云购买域名,https://wanwang.aliyun.com,只需要几十块钱一年; 二. 购买空间 购买个虚拟主机,个人的建站的话,买个虚拟共享的,花几块钱就可以了,如果是为公司或者企业购买准备…