当前位置:首页 > uni-app

uniapp倒计时组件

2026-03-04 18:37:08uni-app

uniapp 倒计时组件实现方法

使用内置组件 <uni-countdown>

uniapp 官方提供了 <uni-countdown> 组件,可直接实现倒计时功能。该组件支持自定义样式、时间格式和事件回调。

<uni-countdown 
  :show-day="true" 
  :show-colon="true" 
  :hour="1" 
  :minute="30" 
  :second="0"
  @timeup="handleTimeUp"
></uni-countdown>
methods: {
  handleTimeUp() {
    uni.showToast({
      title: '倒计时结束',
      icon: 'none'
    });
  }
}

自定义实现倒计时逻辑

通过 setInterval 实现自定义倒计时,适合需要更复杂控制的场景。

<view>{{ countdownText }}</view>
data() {
  return {
    countdown: 60, // 60秒倒计时
    countdownText: '01:00',
    timer: null
  }
},
mounted() {
  this.startCountdown();
},
methods: {
  startCountdown() {
    this.timer = setInterval(() => {
      if (this.countdown <= 0) {
        clearInterval(this.timer);
        uni.showToast({
          title: '倒计时结束',
          icon: 'none'
        });
        return;
      }
      this.countdown--;
      this.countdownText = this.formatTime(this.countdown);
    }, 1000);
  },
  formatTime(seconds) {
    const mins = Math.floor(seconds / 60);
    const secs = seconds % 60;
    return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
  }
},
beforeDestroy() {
  clearInterval(this.timer);
}

使用第三方插件

通过 npm 安装第三方倒计时组件如 countdown.js,提供更丰富的功能。

npm install countdown
import countdown from 'countdown';
countdown(
  new Date('2023-12-31'),
  (ts) => {
    console.log(ts.days, ts.hours, ts.minutes, ts.seconds);
  },
  countdown.DAYS|countdown.HOURS|countdown.MINUTES|countdown.SECONDS
);

注意事项

  • 页面销毁时需清除定时器,避免内存泄漏
  • 倒计时组件在后台运行时可能被暂停,需使用 uni.onBackgroundTimer 处理
  • 跨平台兼容性需测试,不同平台表现可能略有差异

uniapp倒计时组件

标签: 倒计时组件
分享给朋友:

相关文章

vue实现组件拖放

vue实现组件拖放

Vue 实现组件拖放的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

vue动态组件实现

vue动态组件实现

Vue 动态组件实现方法 使用 component 标签与 is 属性 通过 Vue 内置的 <component> 标签和 is 属性实现动态组件切换。is 的值可以是已注册的组件名或导…

vue实现倒计时

vue实现倒计时

Vue 实现倒计时的方法 使用 setInterval 实现基础倒计时 通过 Vue 的 data 定义倒计时时间,使用 setInterval 进行倒计时操作,并在组件销毁时清除定时器。 <…

vue实现倒计时功能

vue实现倒计时功能

vue实现倒计时功能 在Vue中实现倒计时功能可以通过多种方式完成,以下是几种常见的方法: 方法一:使用setInterval和clearInterval 创建一个倒计时组件,利用setInter…

uniapp如何将底部导航组件化

uniapp如何将底部导航组件化

在 uniapp 中将底部导航组件化 将底部导航组件化可以提高代码复用性和维护性。以下是具体实现方法: 创建自定义底部导航组件 新建一个组件文件,例如 tab-bar.vue,放置在 compon…

如何判断react组件

如何判断react组件

判断 React 组件的依据 React 组件的判断通常基于其定义方式、功能特性和代码结构。以下是几种常见的判断方法: 函数组件与类组件 函数组件是通过 JavaScript 函数定义的,接收 pr…