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

Vue3+ElementPlus倒计时示例

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

倒计时逻辑 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.xdnf.cn/news/18490.html

相关文章:

  • 应用服务器和数据库服务器的区别
  • 机器学习案例——预测矿物类型(数据处理部分)
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk
  • `sudo apt update` 总是失败
  • Linux问答题:调优系统性能
  • 李宏毅NLP-12-语音分类
  • 基于Labview的旋转机械AI智能诊断系统
  • 2015-2018年咸海流域1km归一化植被指数8天合成数据集
  • html-docx-js 导出word
  • Linux问答题:归档和传输文件
  • 探秘北斗卫星导航系统(BDS):架构、应用与未来蓝图,展现中国力量
  • 文件系统挂载详细分析(《图解Linux内核》虚拟文件系统篇笔记二)
  • UDP报文的数据结构
  • 可转换债券高频交易Level-2五档Tick级分钟历史数据分析
  • 20250823解决荣品RD-RK3588-MID核心板的底板的adb不通
  • 超越基础:Glide 高级优化与自定义实战
  • 12.Shell脚本修炼手册--函数的基础认知与实战演练(fock炸弹!!)
  • 第1.2节:早期AI发展(1950-1980)
  • Mybatis Plus - 代码生成器简单使用
  • Baumer高防护相机如何通过YoloV8深度学习模型实现社交距离的检测识别(python)
  • 【204页PPT】某著名企业信息化规划方案(附下载方式)
  • 【攻防世界】Web_php_include
  • GitLab CI:安全扫描双雄 SAST vs. Dependency Scanning 该如何抉择?
  • 阿德莱德多模态大模型导航能力挑战赛!NavBench:多模态大语言模型在具身导航中的能力探索
  • C++ csignal库详细使用介绍
  • 密码管理中Null 密码
  • 第九届86358贾家庄短片周在山西汾阳贾家庄举办
  • 齐次变换矩阵的逆变换:原理与SymPy实现
  • FIFO核心原理与机制
  • 解决 SymPy Lambdify 中的符号覆盖与语法错误问题