当前位置:首页 > uni-app

uniapp倒计时组件

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

uniapp 倒计时组件实现方法

使用内置组件 <uni-countdown>

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

uniapp倒计时组件

<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 实现自定义倒计时,适合需要更复杂控制的场景。

uniapp倒计时组件

<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 处理
  • 跨平台兼容性需测试,不同平台表现可能略有差异

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

相关文章

vue组件传值实现分页

vue组件传值实现分页

Vue组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息:…

vue实现组件通信

vue实现组件通信

Vue 组件通信方法 Vue 提供了多种方式实现组件间的通信,适用于不同场景。以下是常见的方法: Props 和 Events 父组件通过 props 向子组件传递数据,子组件通过 $emit 触…

vue实现水印组件

vue实现水印组件

Vue 水印组件的实现方法 使用Canvas绘制水印 在Vue组件中通过Canvas动态生成水印图案,将其作为背景添加到目标元素上。 <template> <div ref="…

vue 动态组件实现

vue 动态组件实现

vue 动态组件实现 Vue 的动态组件功能允许根据条件或用户交互动态切换不同的组件,主要通过 <component> 标签和 is 属性实现。 基本用法 通过 is 属性绑定组件名或组…

vue 实现树组件

vue 实现树组件

Vue 树形组件实现 基础树形结构实现 使用递归组件实现树形结构,核心是通过组件自身调用自身渲染嵌套数据。 <template> <ul> <li v-fo…

vue 实现动态组件

vue 实现动态组件

Vue 动态组件的实现方法 在 Vue 中,可以通过 <component> 标签结合 is 属性实现动态组件切换。以下是具体实现方式: 使用 is 属性绑定组件名 <templ…