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

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 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
