当前位置: 首页 > news >正文

如何利用php开源系统建立php网站国内做网站最好的公司

如何利用php开源系统建立php网站,国内做网站最好的公司,网站建设专业的公司,免费开发软件的网站建设背景 在开发过程中#xff0c;经常需要使用到倒计时的场景#xff0c;当用户点击后#xff0c;按钮进行倒计时#xff0c;然后等待邮件或者短信发送#xff0c;每次都写重复代码#xff0c;会让代码显得臃肿#xff0c;所以封装一个组件来减少耦合 创建一个倒计时组件…背景 在开发过程中经常需要使用到倒计时的场景当用户点击后按钮进行倒计时然后等待邮件或者短信发送每次都写重复代码会让代码显得臃肿所以封装一个组件来减少耦合 创建一个倒计时组件 编辑基本框架 设计3个参数一个是倒计时时长一个是开始时执行的方法一个是展示文本 import React, { useState, useEffect, useRef } from react; import { Button } from antd;// 定义 CountdownButton 的属性接口 interface CountdownButtonProps extends OmitReact.ButtonHTMLAttributesHTMLButtonElement, onClick {countdownTime?: number;text?: string;onStart?: () void; }const CountdownButton: React.FCCountdownButtonProps ({ countdownTime 60, text 获取验证码, onStart, ...restProps }) {const [isDisabled, setIsDisabled] useState(false);const [buttonText, setButtonText] useState(text);// 使用useRef来保存倒计时的当前值避免状态重置const countdownRef useRef(countdownTime);const intervalRef useRefnumber | null(null);return (Button {buttonText}/Button); };export default CountdownButton;实现倒计时方法 实现剩余时间修改方法 // 使用自定义的setCountdownRef函数来更新倒计时值const setCountdownRef (update: (current: number) number) {const newCountdown update(countdownRef.current);countdownRef.current newCountdown;};实现开启倒计时方法 const handleStartCountdown () {// 立即更新按钮文本和状态setButtonText(${countdownRef.current}s后重试);setIsDisabled(true);if (typeof onStart function) {onStart();}// 如果已经有定时器存在则清除它if (intervalRef.current ! null) {clearInterval(intervalRef.current!);}intervalRef.current setInterval(() {setButtonText(${countdownRef.current}s后重试);setCountdownRef((prevCountdown) {if (prevCountdown 1) {clearInterval(intervalRef.current!);intervalRef.current null;setButtonText(text);setIsDisabled(false);return countdownTime; // 重置倒计时时间}return prevCountdown - 1;});}, 1000);实现清楚定时器方法 // 清除定时器useEffect(() {return () {if (intervalRef.current ! null) {clearInterval(intervalRef.current!);}};}, []);完整代码 import React, { useState, useEffect, useRef } from react; import { Button } from antd;// 定义 CountdownButton 的属性接口 interface CountdownButtonProps extends OmitReact.ButtonHTMLAttributesHTMLButtonElement, onClick {countdownTime?: number;text?: string;onStart?: () void; }const CountdownButton: React.FCCountdownButtonProps ({ countdownTime 60, text 获取验证码, onStart, ...restProps }) {const [isDisabled, setIsDisabled] useState(false);const [buttonText, setButtonText] useState(text);// 使用useRef来保存倒计时的当前值避免状态重置const countdownRef useRef(countdownTime);const intervalRef useRefnumber | null(null);// 清除定时器useEffect(() {return () {if (intervalRef.current ! null) {clearInterval(intervalRef.current!);}};}, []);const handleStartCountdown () {// 立即更新按钮文本和状态setButtonText(${countdownRef.current}s后重试);setIsDisabled(true);if (typeof onStart function) {onStart();}// 如果已经有定时器存在则清除它if (intervalRef.current ! null) {clearInterval(intervalRef.current!);}intervalRef.current setInterval(() {setButtonText(${countdownRef.current}s后重试);setCountdownRef((prevCountdown) {if (prevCountdown 1) {clearInterval(intervalRef.current!);intervalRef.current null;setButtonText(text);setIsDisabled(false);return countdownTime; // 重置倒计时时间}return prevCountdown - 1;});}, 1000);// 立即减少一次倒计时使首次显示正确的剩余时间setCountdownRef((prevCountdown) prevCountdown - 1);};// 使用自定义的setCountdownRef函数来更新倒计时值const setCountdownRef (update: (current: number) number) {const newCountdown update(countdownRef.current);countdownRef.current newCountdown;};return (Button {...restProps} onClick{handleStartCountdown} disabled{isDisabled}{buttonText}/Button); };export default CountdownButton;使用方法 CountdownButton countdownTime{60} text{获取验证码} onStart{sendMsg} typeprimary /效果
http://www.dnsts.com.cn/news/85533.html

相关文章:

  • 中粮我买网是哪个公司做的网站昆山花桥做网站
  • a站播放量最高的视频中国免费网站服务器主机域名
  • 重庆公司建设网站房地产设计图与规划图
  • 中小学生做试卷的网站6软件开发项目
  • 上海中学门户网站现在做一个app大概多少钱
  • 广州乐地网站建设公司手游推广平台哪个好
  • php搭建一个简单的网站上海建设工程学校网站
  • 别人买了域名做违法网站e4a做网站软件
  • 网站空间邮箱每年要续费吗怎么备份网站数据库
  • 建设网站的方案张家港早晨网站制作
  • 手机pc网站共用数据库学校培训网站开发
  • 博物馆网站开发上海专业做网站公司
  • 触屏手机网站建设河北省网站建设公司
  • 区域销售网站什么做如何选择企业网站开发
  • 南通网站定制网络推广和网络营销的区别
  • 导航类网站怎么做重庆网站平台
  • 整站优化该怎么做网站建设运营的灵魂是什么
  • 图展网站源码游戏开发设计公司
  • 网站开发网络公司win2003 wordpress 安装
  • 为网站生成rss国家质量监督局官网
  • 怎么建网站做淘宝客上海自贸区注册公司在哪里
  • 网站设计上海自己电脑做电影网站
  • 设计手机网站内容模块哪个网站可以做视频播放器
  • 达孜网站建设在网上做游戏网站违法吗
  • 宝安公司免费网站建设建站公司做的网站侵权了
  • 网站你懂我意思正能量晚上在线观看不用下载免费魅族深圳做自适应网站
  • 树莓派用来做网站如何查名下是否有注册的公司
  • 山东站群网站建设建站系统做网站
  • 腾讯大浙网 网站开发品牌网站如何做
  • 陕西省高速建设集团网站良品铺子网站建设目标