vant_ CountDown倒计时

语法可以直接在官网查看

需求

后端返回的数据格式如下

javascript 复制代码
[
  {
      "id": 1,
      "btn_text": "+1",
      "second": 0
  },
  {
      "id": 2,
      "btn_text": "+1",
      "second": 0
  }
 ...
]

之前约定second最多30s, 因此只需要使用秒不需要使用分钟或者是小时。

在此处使用van-count-down 组件来完成的。

javascript 复制代码
<li v-for='item in getCountList' >
  <template v-if="item.second && !item.secondFinish">
    <van-count-down :time="item.second*1000" @finish="item.secondFinish = true">
      <template #default="timeData">
        <span class="block">{{ timeData.seconds }}S</span>
      </template>
    </van-count-down>
  </template>
  <template v-else>{{ item.btn_text }}</template>
</li>
问题

测试时发现 倒计时25S、24S ... 0S 之后并没有显示按钮文本"+1"而是显示60S继续开始倒计时

25S、24S ... 0S、60S、59S、58S ... 0S、60S ...

原因

后端返回的second数值为 325(不符合约定数值)

  • 我以为的:
    • 1\] 会换算成时分秒 325s为30min25s

    • 3\] 25S进行倒计时,倒计时结束触发finish方法

    • 1\] 将所有数据换算成秒以60s为一组 如\[25s, 60s, 60s..., 60s

    • 2\] 进行倒计时,将`所有组`倒计时结束才会走finish方法! 示例: 先对25s进行倒计时,然后对60s进行倒计时 ...所有60s倒计时结束,触发finish。

只需要后端返回正确的秒数即可(<=30)。

相关推荐
吴声子夜歌29 分钟前
TypeScript——泛型
前端·git·typescript
猩猩程序员1 小时前
Pretext:一个绕过 DOM 的纯 JavaScript 排版引擎
前端
竹林8181 小时前
从“连接失败”到丝滑登录:我用 ethers.js 连接 MetaMask 的完整踩坑实录
前端·javascript
神舟之光1 小时前
jwt权限控制简单总结(乡村意见簿-vue-express-mongdb)
前端·vue.js·express
铭毅天下2 小时前
EasySearch Rules 规则语法速查手册
开发语言·前端·javascript·ecmascript
GISer_Jing2 小时前
AI Agent操作系统架构师:Harness Engineer解析
前端·人工智能·ai·aigc
英俊潇洒美少年2 小时前
css中专门用来提升渲染性能、减少重排重绘的属性
前端·css
天若有情6732 小时前
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步
前端·html
Highcharts.js2 小时前
React 开发者的图表库生态:Highcharts React
前端·react.js·前端框架
阿部多瑞 ABU2 小时前
文明文化悖论
前端·人工智能·ai写作