Vue 3 computed 怎么处理倒计时剩余时间的格式化

落枫姑娘_4510

落枫姑娘_4510

2026-10-20

159人浏览

原创

vue 3 中用 computed 实现倒计时格式化,核心是将响应式毫秒差 distancetime 转为 { days, hours, minutes, seconds } 结构并拼接字符串,依赖响应式自动更新,不操作 dom、不手动触发刷新。

vue 3 computed 怎么处理倒计时剩余时间的格式化

Vue 3 中用 computed 处理倒计时剩余时间的格式化,核心是把毫秒级剩余时间(distanceTime)转成结构化的 { days, hours, minutes, seconds },再按需拼接为字符串。它不直接操作 DOM,也不手动触发更新,而是依赖响应式依赖自动重算,简洁又高效。

剩余时间必须是响应式来源

computed 本身不产生响应性,它依赖的值得是 ref 或 reactive。常见写法:

const now = ref(Date.now()); // 当前时间戳(毫秒)
const targetTime = ref(Date.parse('2026-12-31T23:59:59')); // 目标时间戳

const distanceTime = computed(() => {
  const diff = targetTime.value - now.value;
  return diff > 0 ? diff : 0; // 负数归零,避免负倒计时
});

这个 distanceTime 就是 computed 的输入源,后续所有格式化都基于它。

格式化逻辑写在另一个 computed 里

推荐拆开:一个 computed 算毫秒差,另一个 computed 专注格式化,语义清晰、便于复用和测试:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习