使用Vue3+TS 封装当前时间的hook
在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
生命周期钩子来设置和清除定时器。每秒更新一次当前时间,并在组件销毁时清除定时器,以防止内存泄漏。
评论已关闭