• 按钮文字默认显示“开始倒计时”
  • 当点击按钮时,显示正在倒计时(倒计时数字)
  • 倒计时结束按钮显示“开始倒计时”

倒计时逻辑 Hooks 函数

hooks/useCountDown.js

/*** hooks函数:函数是用于封装和复用组件逻辑的一种机制* 定义:Hooks 是一种在不使用类组件的情况下复用状态逻辑的方法* 目的:将组件中的逻辑抽取出来,形成可复用的函数* 特点:遵循 Composition API 的思想,使逻辑组织更加灵活* 命名规范:通常以 use 开头命名 Hook 函数,如 useCounter、useFetch 等*/
import {ref, watch} from "vue";// 封装并导出倒计时函数
export function useCountDown(num = 60) {// 倒计时剩余秒数const count = ref(num);// 是否倒计时中const isDown = ref(false);// 定时器的 id 编号let timerId = null;// 开始倒计时函数const start = () => {if (isDown.value) return; //当前正在倒计时中,则返回isDown.value = true;      //设置 isDown 值,表示正在倒计时中timerId = setInterval(() => {count.value--;}, 1000);}// 使用 watch 监听 count 值,当 count 值变为 0 时,停止计时器watch(count, (newCount) => {if (newCount <= 0) {clearInterval(timerId); //清除计时器count.value = num;      //重置 count 值isDown.value = false;   //重置 isDown 值}})return {count,isDown,start}
}

页面按钮

xxx/index.vue

<template><el-button type="primary" @click="countDownFn"><span v-if="isDown">正在倒计时({{ count }})</span><span v-else>开始倒计时</span></el-button>
</template><script setup>
// 导入 hooks 函数
import { useCountDown } from "@/hooks"
// 调用 useCountDown 函数,得到 count计数, isDown是否开始, start 函数
const { count, isDown, start } = useCountDown(10)// 倒计时
const countDownFn = () => {start()
}
</script><style lang="scss" scoped>
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94727.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94727.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/94727.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 的网络

1.查看docker里面的网络docker network ls 2.查看某个 Docker 网络的 网关 IP 和 子网段docker network inspect <网络名或ID>

数据挖掘,到底是在挖掘什么?

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

【车载开发系列】CS+ for CC开发环境IDE

【车载开发系列】CS for CC开发环境IDE 【车载开发系列】CS for CC开发环境IDE【车载开发系列】CS for CC开发环境IDE一. 引言二. IDE安装三. 新建工程四. 堆与栈内存的设置1&#xff09;栈内存设置2&#xff09;堆内存设置一. 引言 瑞萨单片机开发环境有三种&#xff1a;estu…

如何将视频从安卓设备传输到Mac?

你是否想要创建备份、释放存储空间&#xff0c;或者分享难忘时刻&#xff1f;你可能想要轻松地将视频从安卓设备复制到MacBook。在本篇关于“如何将视频从安卓传输到Mac”的指南中&#xff0c;我们将介绍五种智能方法&#xff0c;帮助你无缝地复制视频。从传统的WiFi连接方法到…

MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术

&#x1f50d; MyBatis 初识&#xff1a;框架定位与核心原理——SQL 自由掌控的艺术 文章目录&#x1f50d; MyBatis 初识&#xff1a;框架定位与核心原理——SQL 自由掌控的艺术&#x1f9e9; 一、为什么需要 ORM 框架&#xff1f;&#x1f4a1; JDBC 的痛点&#xff1a;原始时…

谷粒商城项目-P6环境-使用vagrant快速创建Linux虚拟机

1.虚拟机 虚拟机使用virtualbox,我使用的是6.0.12版本 2.创建linux系统 使用vagrant 验证是否安装完成vagrant 在cmd使用vagrant看看有没有命令提示 创建虚拟机 在cmd使用vagrant init centos/7创建 创建完成后使用vagrant up启动虚拟容器 启动完成后&#xff0c;使用va…

人形机器人的“奥运会“:宇树科技领跑,动捕技术成训练关键

近年来&#xff0c;人工智能、仿生学和运动控制技术的突破性发展&#xff0c;正推动人形机器人成为全球科技竞争的新焦点。各国政府、科研机构和企业加速布局医疗、救援、服务等领域的应用场景。在此背景下&#xff0c;首届世界人形机器人大会应运而生并于近日圆满落幕。此次运…

20250823给荣品RD-RK3588开发板刷Rockchip原厂的Android14【EVB7的V10】时调通AP6275P的WIFI

20250823给荣品RD-RK3588开发板刷Rockchip原厂的Android14【EVB7的V10】时调通AP6275P的WIFI 2025/8/23 17:02【我是先将这个DTSI文件中的代码块直接搬到rk3588-evb7-lp4.dtsi中&#xff0c;然后就可以上网了。接着就微调到最终版本&#xff01;】 E:\RD-RK3588_Android13\kern…

Mac 菜单栏多合一工具自荐:FancyTool

鉴于本人特别喜欢花里花哨的菜单栏&#xff0c;但又不想开机自启太多软件&#xff0c;所以自己开发了一个新的、轻量的&#xff0c;有点花里胡哨但又有些实用功能的多合一工具&#xff1a;[ FancyTool ]&#xff0c; 感兴趣的朋友可以点击链接下载使用。 我承认&#xff0c;这…

用AI生成的一个BadgerDB的管理工具

badgerDB 是一款由 Dgraph Labs 开发的高性能、嵌入式键值&#xff08;Key-Value&#xff09;数据库&#xff0c;基于 LSM-Tree&#xff08;Log-Structured Merge Tree&#xff09;存储引擎设计&#xff0c;主打低延迟、高吞吐量和轻量级部署&#xff0c;广泛用于需要本地持久化…

Spring-- Spring Security(一)

1. 概念Spring Security&#xff1a;Spring 提供的安全框架&#xff0c;用于保护应用程序免受未授权访问&#xff0c;提供认证、授权、CSRF 防护等功能。核心功能&#xff1a;认证&#xff08;Authentication&#xff09;&#xff1a;确认用户身份&#xff08;登录过程&#xf…

某电器5G智慧工厂网络建设全解析

随着工业4.0的全面推进和智能制造需求的不断增长&#xff0c;5G技术已成为智慧工厂建设的核心驱动力。某电器工厂计划通过构建高效可靠的5G网络&#xff0c;结合智能组网设备与工业物联网技术&#xff0c;实现智能化转型&#xff0c;提升生产运营效率。本文将详细解析该5G智慧工…

PyCharm 加载不了 conda 虚拟环境,不存在的

#工作记录前言在开发过程中&#xff0c;PyCharm 无法加载 Conda 虚拟环境是常见问题。在不同情况下&#xff0c;“Conda 可执行文件路径”的指定可能会发生变化&#xff0c;不会一尘不变&#xff0c;需要灵活处置。以下是一系列解决此问题的经验参考。检查 Conda 安装与环境创建…

xml中resultMap 的用法,数据库 JSON 字符串 → Java List/对象

文章目录一、resultMap 核心作用二、基本用法&#xff08;以你的配置为例&#xff09;1. 定义 resultMap2. 在 SQL 中使用 resultMap三、关键注意事项resultMap 是 MyBatis 中用于定义数据库表字段与 Java 实体类属性之间映射关系的核心配置&#xff0c;解决表字段名和实体类属…

PySINDy

PySINDy A Python package for the Sparse Identification of Nonlinear Dynamics from Data Abstract PySINDy 是一个用于从数据中发现主导动力系统模型的 Python 软件包。具体来说&#xff0c;PySINDy 提供了应用非线性动力学稀疏辨识&#xff08;SINDy&#xff09;[1] 方法…

校园跑腿小程序源码 | 跑腿便利店小程序(源码下载)

校园跑腿小程序源码 | 跑腿便利店小程序 本项目后端采用 midway3.0&#xff0c;后台采用 nuxt2.x,小程序采用 uniapp 实现的一套跑腿下单接单系统。 主要功能&#xff1a;跑腿、快递代取、陪练陪玩、软件安装、申请接单、用户下单、提现、物品重量计算等。 源码下载&#xf…

基于stm32的物联网OneNet火灾报警系统

1 系统功能介绍 本设计为基于STM32单片机的物联网OneNet火灾报警系统。系统通过采集环境中的温湿度、火焰检测数据&#xff0c;并结合物联网技术上传至OneNet云平台&#xff0c;实现远程监控和报警功能。系统还具备蜂鸣器报警、LED灯闪烁等本地报警功能&#xff0c;保证在火灾发…

校园跑腿小程序源码 _ 跑腿便利店小程序 含搭建教程

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 校园跑腿小程序源码 | 跑腿便利店小程序 本项目后端采用 midway3.0&#xff0c;后台采用 nuxt2.x,小程序采用 uniapp 实现的一套跑腿下单接单系统。 主要功能&#xff1a;跑腿、快递代…

数据结构:2-3-4 树 和 B 树

目录 我们为什么需要 2-3-4 树&#xff1f; 2-3-4 树的插入操作 从零推导代码 B 树 (B-Tree) 从零推导代码 我们沿着自平衡树的演化路径继续前进。我们已经学习了 2-3 树如何通过“分裂与提升”来替代 AVL 树的“旋转”&#xff0c;但其修复过程是“自下而上”的。现在&am…

Python爬虫实战:构建港口物流数据采集和分析系统

1. 引言 1.1 研究背景与意义 在全球化背景下,港口作为 “一带一路” 倡议的关键节点,其运营效率直接影响国际贸易流通速度。港口管理部门、物流企业及贸易公司需实时掌握船舶动态、货物吞吐量等信息以优化调度、降低成本。然而,这些信息分散于: 港口官方网站(如上海港、…