useRealtimeTimestamp.js 696 B

12345678910111213141516171819202122232425262728
  1. import { ref, onMounted, onUnmounted } from "vue";
  2. // 组合式函数:返回实时更新的时间戳
  3. export function useRealtimeTimestamp() {
  4. // 初始化时间戳(当前时间)
  5. const timestamp = ref(Date.now());
  6. // 存储定时器ID,用于后续清除
  7. let timer = null;
  8. // 组件挂载时启动定时器
  9. onMounted(() => {
  10. // 每隔1000ms(1秒)更新一次时间戳
  11. timer = setInterval(() => {
  12. timestamp.value = Date.now(); // 实时更新
  13. }, 1000);
  14. });
  15. // 组件卸载时清除定时器(关键:防止内存泄漏)
  16. onUnmounted(() => {
  17. if (timer) {
  18. clearInterval(timer);
  19. timer = null;
  20. }
  21. });
  22. return { timestamp };
  23. }