Vue利用dayjs封装实现时间实时刷新
更新时间:2024年07月19日 08:54:49 作者:我是亮哥啊
Day.js库本身专注于简化JavaScript日期和时间的操作,它的API设计直观,且功能强大,可以方便地格式化日期、添加或减去时间间隔、比较日期等,本文主要介绍了Vue利用dayjs封装实现时间实时刷新,需要的朋友可以参考下
1、vue2中使用mixins封装
1.1 封装
// mixins/formatdate.js import dayjs from 'dayjs' export default { data() { return { currentTime: { timer: null, currentDay: this.formatTime().day, // 星期几 date: this.formatTime().date, // 年月日 time: this.formatTime().time, // 时分秒 }, } }, mounted() { this.timer = setInterval(() => { this.updateTime() }, 1000) }, methods: { formatTime(d = 'YYYY.MM.DD', t = 'HH:mm:ss') { let days = ['日', '一', '二', '三', '四', '五', '六'] let date = dayjs(new Date()).format(d) let time = dayjs(new Date()).format(t) let day = `星期${days[dayjs().day()]}` return { date, time, day } }, updateTime() { this.currentTime.currentDay = this.formatTime().day this.currentTime.date = this.formatTime().date this.currentTime.time = this.formatTime().time }, }, beforeDestroy() { clearInterval(this.timer) }, }
1.2 在组件中使用
<span>{{ currentTime.date }}</span> <span>{{ currentTime.currentDay }}</span> <span>{{ currentTime.time }}</span> <script> import formatdate from '@/mixins/formatdate' export default { mixins: [formatdate], } </script>
2、vue3中利用组合式函数
2.1 封装
// formatTime.js import dayjs from 'dayjs' import { onBeforeUnmount, onMounted, ref } from 'vue' export function useTime() { // 星期几 const currentDay = ref('') // 年月日 const date = ref('') // 时分秒 const time = ref('') // 获取时间 const updateTime = (d = 'YYYY.MM.DD', t = 'HH:mm:ss') => { let days = ['日', '一', '二', '三', '四', '五', '六'] date.value = dayjs(new Date()).format(d) time.value = dayjs(new Date()).format(t) currentDay.value = `星期${days[dayjs().day()]}` } // 定义定时器 let timer = null onMounted(() => { timer = setInterval(() => { updateTime() }, 1000) }) onBeforeUnmount(() => clearInterval(timer)) return { currentDay, date, time } }
2.2 在组件中使用
<span>{{ currentDay }}</span> <span>{{ date }}</span> <span>{{ time }}</span> <script setup> import { useTime } from '@/utils/formatTime' const { currentDay, date, time } = useTime() </script>
到此这篇关于Vue利用dayjs封装实现时间实时刷新的文章就介绍到这了,更多相关Vue dayjs时间实时刷新内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决Vue-Router升级导致的Uncaught (in promise)问题
这篇文章主要介绍了解决Vue-Router升级导致的Uncaught (in promise)问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08vue3基于elementplus 简单实现表格二次封装过程
公司渲染表格数据时需要将空数据显示‘-’,并且对于每一列数据的显示也有一定的要求,基于这个需求对element-plus简单进行了二次封装,这篇文章主要介绍了vue3基于elementplus 简单实现表格二次封装过程,需要的朋友可以参考下2024-05-05Vite中使用Ant Design Vue3.x框架教程示例
这篇文章主要为大家介绍了Vite中使用Ant Design Vue3.x框架教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-06-06element-resize-detector监听普通元素的实现示例
当涉及到网页元素的实时尺寸变化监测时,element-resize-detector 是一个值得推荐的开源库,本文主要介绍了element-resize-detector监听普通元素的实现示例,感兴趣的可以了解一下2024-07-07
最新评论