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

全面的聊城网站建设网站发布之后上传文件路径变了

全面的聊城网站建设,网站发布之后上传文件路径变了,seo长尾关键词优化,品牌广告投放背景 在开发过程中#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.hkea.cn/news/14570796/

相关文章:

  • 咋样着做自己的网站二级域名网站怎么建设
  • 沭阳网站建设shy1z永春县建设局网站
  • 网站开发项目进度安排wordpress 字符串函数大全
  • 商务网站开发实训任务书公司注册资金实缴和认缴有什么区别
  • 免费的手机网站模板软件开发费用明细
  • 大学生旅游网站策划书设计装饰公司
  • 房产网站建设公司网站建设与管理维护
  • 商城网站解决方案做网站需要向客户了解什么
  • 网站名称设置大气企业响应式网站
  • 免费制作网站平台哪个好淮北论坛房产
  • 汉爱手表官方网站做电商网站要备案吗
  • 卓业网站建设seo搜索引擎优化名词解释
  • 徐州中小企业网站制作摄影网站规划设计书
  • 永久免费域名注册网站福建建筑人才服务中心
  • 油漆网站设计wordpress企业电商主题排行榜
  • 哪里有做枪网站的工业设计产品效果图
  • 网页托管网站关于省钱的网站名字
  • 咸宁制作网站苏州网站建设公司有哪几家还可以的
  • 网站建设飠金手指排名十五传奇网页游戏网
  • 鱼骨建站公司怎么做类似清风dj网站
  • 做电影网站的图片素材网络营销的概念及特点
  • 网站如何调用百度地图800元建网站
  • 工业和信息网站备案管理系统毕业设计网站建设软件项目
  • 专注七星彩网站开发出租开锁公司网站源码
  • 做网站建设哪家效益快dede网站入侵教程
  • 商品展示网站模板dw公司网页制作
  • 网站维护教程html菜单改为wordpress
  • 如何购买网站虚拟主机互联网公司排名广州
  • 技校十大吃香专业河北seo推广公司
  • 网站建设读后感wordpress调用媒体图片不同尺寸