VUE 自定义日历+切换上下月+点击事件

本文介绍了一个使用Vue快速创建的自定义日历组件,包括切换上下月和点击事件的功能。作者分享了实现该功能的思路和注意事项,并展示了代码示例。虽然样式简单,但演示了基本的日历交互。后续作者计划将此组件整理并上传到Git仓库。
摘要由CSDN通过智能技术生成

背景:朋友想让我帮他写一个前端的日历demo,昨天晚上抽空搞了一下,产出了一个Demo。由于是简单demo,所以对样式上没有过多的调整。

思路:

获取每个月的第一天是周几,按照周几插入数据。上个月的在1号前面置空,下个月在月最后一天后面从1开始插入
抽调函数,渲染传参,下个月和上个月切换功能也只要切换参数就可以。
切换上个月或者下个月,只要把对应的年份、月份、日子传到下方渲染的公用方法里即可。

注意点:

这个其实本身是一个很简单的功能,在开发的时候只要细心点,关注一下month,因为在loadCalender方法中,将每个月的日子放入数组里面,数组是从0开始的,月份则是从1 。然后在传数据的时候要求month是从1开始的,所以只要细心关注一下这里,就没有什么问题了。

效果图:
在这里插入图片描述
代码:

DOM结构
 <div class="calendar">
            <!--上下月箭头切换+日历头-->
            <div class="calendar__header">
                <span @click="handlePreMonth"><</span>
                <span>{
   {
   year}}{
   {
   month}}{
   {
   day}}</span>
                <span @click="handleNextMonth">></span>
            </div>
            <!--整个日历区域-->
            <div class="calendar__main">
                <!--周一-周日展示-->
                <div class="main__block-head">
                    <span class="head-span" v-for="(item, index) in blockHead" :key="index">{
   {
   item}}</span>
                </div>
                <!--月份日期展示-->
                <div class="main__block">
                    <span class="head-span" v-for="(item, index) in totalCalenderList" :key="index" @click="handleDayClick(item)">
                        <span>{
   {
   item.content}}</span>
                        <span class="span-status" v-html="spanStatus(item)"></span>
                    </span>
                </div>
            </div>
        </div>```

data数据:

```php
data() {
   
        return {
   
            year: new Date().getFullYear(),
     
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值