首页 > 其他分享 >ssts-hospital-web-master项目实战记录二十六:项目迁移-Hook实现(usCountdown)

ssts-hospital-web-master项目实战记录二十六:项目迁移-Hook实现(usCountdown)

时间:2024-02-27 17:45:25浏览次数:14  
标签:web interval const usCountdown ssts counter initialSeconds useCountdown startCou

记录时间:2024-02-27

记录时间:2024-02-26

一、useCountdown模块实现

hooks/useCountdown.ts

import { ref, onUnmounted } from 'vue'


export function useCountdown(initialSeconds: number) {   const counter = ref(initialSeconds)   let interval: ReturnType<typeof setInterval> | null = null
  const startCountdown = () => {     if (!interval) {       interval = setInterval(() => {         if (counter.value > 0) {           counter.value--         } else {           stopCountdown()           // 可以在这里添加倒计时结束后的逻辑         }       }, 1000)     }   }
  const stopCountdown = () => {     if (interval) {       clearInterval(interval)       interval = null     }     counter.value = 0   }
  const resetCountdown = (seconds: number = initialSeconds) => {     counter.value = seconds     startCountdown()   }
  onUnmounted(stop)
  return {     counter,     startCountdown,     stopCountdown,     resetCountdown   } }

 

二、调用示例

 test-hook-use-countdown.vue

<script setup lang="ts"> import { useCountdown } from '@/hooks/useCountdown'
const initialSeconds = 10 const { counter, startCountdown, stopCountdown, resetCountdown } =   useCountdown(initialSeconds) </script>
<template>   <div>     <p>counter: {{ counter }}</p>     <button @click="startCountdown">Start Countdown</button>     <button @click="stopCountdown">Stop Countdown</button>     <button @click="resetCountdown(10)">Reset Countdown</button>   </div> </template>
<style scoped></style>  

三、运行测试

 

 

 

 

 

翻译

搜索

复制

<iframe height="240" width="320"></iframe>

标签:web,interval,const,usCountdown,ssts,counter,initialSeconds,useCountdown,startCou
From: https://www.cnblogs.com/lizhigang/p/18037381

相关文章

  • 【内容管理及平台建设】上海道宁为您提供全媒体信息管理平台——WebFuture
     在数字化、智能化的浪潮下我们的生活和工作方式正在经历前所未有的变革  动易软件是综合性软件平台更是一种全新的生活和工作方式为客户提供互联网内容管理移动互联网内容管理全媒体内容管理的平台建设及技术服务  PART01:开发商......
  • PC端web通过自定义协议唤起应用
    写注册表调用WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\Software\Classes\test]@="URL:TestProtocol"[HKEY_CURRENT_USER\Software\Classes\test\shell][HKEY_CURRENT_USER\Software\Classes\test\shell\open][HKEY_CURRENT_USER\......
  • C#程序全局异常处理—WPF和Web API两种模式
    C#程序的全局异常处理,网上搜下资料都是一大堆,我这里最近也是独立做一个B/S结构的小项目,后面又增加了需求用WPF实现相同的功能,这里将我所使用的全局异常处理方式做一个简短的总结分享。WebAPI项目的全局异常处理这种项目下,我们可以直接自定义一个全局异常的过滤器,用来处理全局......
  • Taurus.MVC WebMVC 入门开发教程3:数据绑定Model
    前言:在这篇Taurus.MVCWebMVC入门开发教程的第三篇文章中,我们将重点介绍如何进行数据绑定操作,还会学习如何使用${属性名称} CMS语法来绑定页面上的元素与Model中的属性。步骤1:创建Model首先,我们需要创建一个Model类来存储数据。在VisualStudio中,右键单击项目文......
  • 《安富莱嵌入式周报》第333期:F35战斗机软件使用编程语言占比,开源10V基准电源,不断电运
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1y1421f7ip目录:1、F35战斗机软件使用编程语言占比2、开源10V基准电源,不断电运行一年,误差小于1uV3、资讯(1)苹果开源配置语言Pkl......
  • WebApi项目初始结构简介
    1、launchSettings.json项目的配置文件,包括项目名称、端口号等信息2、依赖项存放项目所需要的一些依赖,例如log3、Controller控制器,可以理解为所有与逻辑相关的东西都在控制器里书写4、配置文件5、程序入口......
  • Web自动化实战:Excel测试用例封装
    1.安装依赖pipinstallpytest-xlsx收集xlsx文件解析内容,识别测试用例将测试用例交给pytest框架参考文档:https://mp.weixin.qq.com/s/iD_KWamziFrTnDt8qpuWWA2.创建excel文件2.1基本例子注意点:文件名称:test_开头文件内容:必须有标记列插件在运行时,会解析【标记】这一......
  • ssts-hospital-web-master项目实战记录二十六:项目迁移-Hook函数(useDialog.ts)
    记录时间:2024-02-27【使用“文心一言”搜索】指令:Vue项目使用tssetup语法,实现页面遮幕弹框,封装Hook函数,包含ShowAlert、ShowConfirm、ShowPrompt、ShowMsg、ShowError、HideMsg、PageLoading、PageLoaded、MenuUnableUse 在Vue3项目中,结合CompositionAPI和TypeScript......
  • ssts-hospital-web-master项目实战记录二十四:项目迁移-Hook函数(useCountdown)
    记录时间:2024-02-26 【使用“文心一言”搜索】指令:Vue项目使用tssetup语法,实现页面倒计时,封装Hook函数,包含start、reset、stop在Vue3中,你可以使用<scriptsetup>语法和CompositionAPI来封装一个倒计时Hook函数,该函数包含start、reset和stop等方法。下面是如何实现这个倒......
  • ssts-hospital-web-master项目实战记录三十一:项目迁移-Vue项目Hook和插件的区别
    记录时间:2024-02-27一、准备工作【使用“文心一言”搜索】Vue中的生命周期钩子与React中的生命周期方法有何异同?Vue3中的Hook是组合式API的一部分,它们提供了一种新的方式来组织和复用组件逻辑。这些Hook函数,如setup、onMounted、onUpdated等,都是在组件的不同生命周期阶段被调......