2021-11-23 vue3.2.21借助dayjs封装dateTimeSelector日期时间选择器组件

本文详述了开发一个日期时间选择器组件和滚动条组件的过程,包括计算偏移天数、监听事件、记录时间以及根据minDate和maxDate限制。此外,还介绍了使用自定义指令`clickOutSlide`来实现点击组件外部时关闭组件的功能。作者强调了封装组件带来的学习收获,并分享了项目代码到GitHub。
摘要由CSDN通过智能技术生成

实现效果

日期时间选择器

1、开发date组件

在这里插入图片描述
首先通过上月与本月的天数,计算出偏移天数,然后绘制出date组件;然后监听鼠标mouseenter和click事件;记录开始时间、结束时间以及鼠标滑过的时间(在点击了开始时候而没点击结束时间的情况下);最后根据传入的(如果有传入的话)minDate和maxDate来做是否能够切换年、月及日期是否能够被选中等判断;
在这里插入图片描述

2、开发scrollBar组件

在这里插入图片描述
scrollBar每个item的高度是固定的20px,计算每个item位置记录在数组中([20,40,…20 * i]);滚动的时候,计算出数组中与当前scrollTop最近的值pos,那个这个pos就是最后的scrollTop位置;
在这里插入图片描述

3、自定义指令clickOutSlide

在点击scrollBar、date组件外面的的时候会关闭scrollBar、date组件;这里是通过自定义指令clickOutSlide实现的;思路就是在document上监听了click方法,判断被点击的el是否是组件的子节点;
在这里插入图片描述
自定义指令在script setup中使用的时候,必须命名成vNameOfDirective;
在这里插入图片描述
使用:
在这里插入图片描述

总结

自己动手封装组件的过程中,能够静下心来思考,并且学到很多东西;代码上传到了github,点击这里查看项目代码;

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值