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
    • 2 timeData.seconds获取秒数为25
    • 3 25S进行倒计时,倒计时结束触发finish方法
  • 实际上
    • 1\] 将所有数据换算成秒以60s为一组 如\[25s, 60s, 60s..., 60s

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

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

相关推荐
赖龙6 小时前
pnpm vs npm
前端·npm·node.js
学如逆水,不进则退7 小时前
在线免费音频剪辑:NBTools 可视化波形裁剪 MP3/WAV,本地处理免上传
前端·音视频
Mh7 小时前
虚拟滚动真的比普通滚动性能更好吗?
前端·javascript·性能优化
pe7er7 小时前
React + Ant Design 中的 IME (输入法合成)安全输入组件
前端
Super 含8 小时前
Android 启动优化(二):TTID、TTFD 与 Macrobenchmark 启动性能测量
前端
Python私教8 小时前
别急着加 llms.txt:企业官网面向 AI 搜索的工程清单
前端·人工智能·seo
东方小月8 小时前
从零开发一个 Coding Agent(十三):实现安全的 read 文件读取工具
前端·人工智能·全栈
东方小月9 小时前
从零开发一个 Coding Agent(十二):实现版本化 JSONL 与真实 CLI 入口
前端·设计模式·前端框架
FL162386312910 小时前
室内易燃物识别易燃评估室内易燃程度识别分割数据集labelme格式1015张85类别
java·服务器·前端
用户0595401744610 小时前
把 AI 长期记忆去重测试从 20 分钟压到 40 秒,重复率从 18% 干到 1.5%
前端·css