使用Vue3+TS 封装当前时间的hook
    		       		warning:
    		            这篇文章距离上次修改已过454天,其中的内容可能已经有所变动。
    		        
        		                
                在Vue 3和TypeScript中,你可以创建一个自定义hook来封装获取当前时间的功能。以下是一个简单的例子:
// useCurrentTime.ts
import { ref, onMounted, onUnmounted } from 'vue';
 
function useCurrentTime() {
  const currentTime = ref<Date>(new Date());
 
  const updateTime = () => {
    currentTime.value = new Date();
  };
 
  onMounted(() => {
    const intervalId = setInterval(updateTime, 1000);
    onUnmounted(() => clearInterval(intervalId));
  });
 
  return { currentTime };
}
 
export default useCurrentTime;然后,你可以在Vue组件中这样使用它:
<template>
  <div>
    当前时间: {{ currentTime.value }}
  </div>
</template>
 
<script lang="ts">
import { defineComponent, ref } from 'vue';
import useCurrentTime from './useCurrentTime';
 
export default defineComponent({
  name: 'CurrentTimeComponent',
  setup() {
    const { currentTime } = useCurrentTime();
    return { currentTime };
  },
});
</script>这个hook使用ref来持有当前时间的引用,使用onMounted和onUnmounted生命周期钩子来设置和清除定时器。每秒更新一次当前时间,并在组件销毁时清除定时器,以防止内存泄漏。
评论已关闭