使用 Vue 3 框架编写的简单日历组件

这段代码是一个使用 Vue 3 框架编写的简单日历组件。下面是代码的详细解析:

  1. 模板部分(Template)

    • 定义了一个名为 "calendar" 的 div,它包含了一个头部分(header)和三个主要部分:一周的日期(days-of-week)、所有日期(dates)和一个按钮组。
    • 在 "header" 部分,显示了当前的年和月,以及两个按钮,一个用于显示上个月,另一个用于显示下个月。
    • "days-of-week" 部分显示了一周的七天。
    • "dates" 部分显示了该月的所有日期。使用 v-for 指令来循环遍历 dates 数组,并显示每个日期的天数。同时,使用 :class 绑定来为当前月份以外的日期添加一个特定的 CSS 类("not-current-month")。
  2. 脚本部分(Script)

    • 使用 import { ref, computed } from 'vue' 导入了 Vue 的响应式引用(ref)和计算属性(computed)。
    • 定义了四个响应式引用:yearmonthdaysOfWeek 和 dates
    • year 和 month 引用了当前年份和月份。
    • daysOfWeek 是一个包含一周七天的数组。
    • dates 是一个计算属性,它首先获取当前月份的第一天是星期几,然后确定这个月有多少天,并创建一个包含所有这些日期的数组。然后,它使用 Array.prototype.fill() 方法填充数组中的前几项,这些项对应于一周的前几天(例如,如果一周的第一天是星期日,那么数组的前一项将是空对象)。
    • previousMonth 和 nextMonth 函数分别用于显示上个月和下个月的日历。这些函数通过修改 year 和 month 的值来实现。
  3. 样式部分(Style)

    • 在这里可以添加你的样式代码,以定制日历的外观。由于此代码示例中没有提供样式部分,因此默认情况下它将使用 Vue 的内置样式或任何全局样式表中的样式。

总的来说,这是一个功能齐全的、可响应的、用户可操作的日历组件

代码部分

<template><div class="calendar"><div class="header"><span>{{ year }} 年 {{ month + 1 }} 月</span><button @click="previousMonth">上个月</button><button @click="nextMonth">下个月</button></div><div class="days-of-week"><span v-for="day in daysOfWeek" :key="day">{{ day }}</span></div><div class="dates"><spanv-for="(date, index) in dates":key="index":class="{ 'not-current-month': date.month !== month }">{{ date.day }}</span></div></div>
</template><script setup>
import { ref, computed } from 'vue';const year = ref(new Date().getFullYear());
const month = ref(new Date().getMonth());
const daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];const dates = computed(() => {const firstDayOfMonth = new Date(year.value, month.value, 1).getDay();const totalDaysInMonth = new Date(year.value, month.value + 1, 0).getDate();const datesArray = [];for (let i = 1; i <= totalDaysInMonth; i++) {datesArray.push({ day: i, month: month.value });}return [...Array(firstDayOfMonth).fill({ day: '', month: '' }),...datesArray,];
});function previousMonth() {if (month.value === 0) {year.value--;month.value = 11;} else {month.value--;}
}function nextMonth() {if (month.value === 11) {year.value++;month.value = 0;} else {month.value++;}
}
</script><style scoped>
/* Add your styles here */
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为数据之道学习笔记】4-2信息架构原则:建立企业层面的共同行为准则

信息架构承载了企业如何管理数据资产的方法&#xff0c;需要从整个企业 层面制订统一的原则&#xff0c;这些原则不仅是对数据专业人员的要求&#xff0c;也是对业务的要求&#xff0c;因为业务才是真正的数据Owner。所以&#xff0c;公司所有业务部门都应该共同遵从信息架构原…

Redis安装教程

文章目录 Redis安装说明1.单机安装Redis1.1.安装Redis依赖1.2.上传安装包并解压1.3.启动1.3.1.默认启动1.3.2.指定配置启动1.3.3.开机自启 2.Redis客户端2.1.Redis命令行客户端2.2.图形化桌面客户端2.2.1.安装2.2.2.建立连接 Redis安装说明 大多数企业都是基于Linux服务器来部…

用Java版本爬虫-WebMagic

我长期关注和实践各种网页数据爬取技术。今天&#xff0c;我想分享我的经验&#xff0c;特别是使用 WebMagic 框架来爬取淘宝网的数据。WebMagic 是一个灵活、强大的Java爬虫框架&#xff0c;适合于数据挖掘和网页内容分析。 WebMagic 简介 WebMagic 是一个简单而强大的 Java…

【clickhouse】ck远程访问另一个ck

代码实现 CREATE TABLE tmp.tbsas remote( host, database_name, table_name, user, password );就相当于从ck1直接请求ck2 参考文档 https://github.com/ClickHouse/ClickHouse/issues/15295 https://clickhouse.com/docs/zh/sql-reference/table-functions/remote

FFmpeg之AVFilterPad

AVFilterPad起一个输入和输出接口的作用 结构体 /*** A filter pad used for either input or output.*/ struct AVFilterPad {/*** Pad name. The name is unique among inputs and among outputs, but an* input may have the same name as an output. This may be NULL if …

go context.todo生成默认空的上下文

在 Go 语言的标准库中&#xff0c;context.TODO() 是一个函数&#xff0c;用于返回一个空的 Context 对象。TODO 是 "to do" 的缩写&#xff0c;表示该上下文对象被保留作为将来可能使用的占位符。 Context 是 Go 语言中用于传递请求的上下文环境的一种机制。它可以用…

LeetCode(58)随机链表的复制【链表】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 随机链表的复制 1.题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节…

kafka常见问题处理

1. 如何防⽌消息丢失 在生产者层面&#xff0c;我们有个ack参数确认机制 设置成-1&#xff0c;也就是副本全部同步了leader才发送ack&#xff0c;这样确保leader和副本挂掉只剩一个还能 保证消息不丢失 消费者&#xff1a; 把⾃动提交改成⼿动提交 2. 如何防⽌重复消费 在…

Node.js中的EventEmitter类介绍

1.EventEmitter类说明 EventEmitter 是 Node.js 中的一个核心模块&#xff0c;它提供了一种实现事件驱动编程的机制。它是一个基于观察者模式的类&#xff0c;用于在应用程序中处理事件和触发事件。 Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js…

TCP/UDP 的区别及优缺点

1.TCP协议 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过建立连接、数据确认&#xff08;编段号和确认号&#xff09;和数据重传等机制&#xff0c;保证了数据的可靠性…

​secrets --- 生成管理密码的安全随机数​

3.6 新版功能. 源代码: Lib/secrets.py secrets 模块用于生成高度加密的随机数&#xff0c;适于管理密码、账户验证、安全凭据及机密数据。 最好用 secrets 替代 random 模块的默认伪随机数生成器&#xff0c;该生成器适用于建模和模拟&#xff0c;不宜用于安全与加密。 参见…

Orange Comet利用Sui Kiosk进行游戏道具和知识产权保护

Orange Comet与AMC合作开发基于《行尸走肉》系列的NFT和游戏&#xff0c;首要关注的问题就是保护AMC的知识产权。利用Sui的Kiosk原语不仅让Orange Comet向AMC保证其资产安全&#xff0c;而且为即将推出的《行尸走肉大陆》游戏打开了无限的可能性。 Kiosk是Sui上的一个原语&…

记录一次chatGPT人机协同实战辅助科研——根据词库自动进行情感分析

有一个Excel中的一列&#xff0c;读取文本判断文本包含积极情感词.txt和消极情感词.txt的个数&#xff0c;分别生成两列统计数据 请将 ‘your_file.xlsx’ 替换为你的Excel文件名&#xff0c;Your Text Column’替换为包含文本的列名。 这个程序首先读取了积极和消极情感词&…

mac 环境下 goframe安装GF开发工具 gf-cli(安装包方式安装)

mac 环境下 goframe安装GF开发工具 gf-cli&#xff08;安装包方式安装&#xff09; 安装包网址 链接: link 终端输入命令进行安装 ./gf_darwin_amd64 但是产生如下报错&#xff0c;无法安装 使用一下命令给安装权限 chmod 0777 gf_darwin_amd64 && ./gf_darwin_a…

SAP ABAP excel文件模板上传下载

一&#xff1a;事物码smw0 二&#xff1a;上传步骤 程序源码&#xff1a; l_filename XX.xls.l_muban z123. *&---下载模板PERFORM frm_get_fullpath CHANGING gv_fullpath gv_path gv_name. *&---路径为空则退出IF gv_fullpath IS INITIAL.MESSAGE 用户取消操作 T…

鸿蒙开发 - ohpm安装第三方库

前端开发难免使用第三方库&#xff0c;鸿蒙亦是如此&#xff0c;在使用 DevEco Studio 开发工具时&#xff0c;如何引入第三方库呢&#xff1f;操作步骤如下&#xff0c;假设你使用的是MacOS&#xff0c;假设你已经创建了了一个项目&#xff1a; 一、配置 HTTP Proxy 在打开了…

实时云渲染技术下的虚拟汽车展厅 为什么越来越受青睐?

虚拟汽车展厅正成为各大车企展示和推广汽车的热门选择。这一趋势背后&#xff0c;反映了汽车行业对数字化转型和消费者需求变化的灵敏应对。 虚拟汽车展厅通常需要大量的3D建模和渲染技术来展示汽车的逼真效果。而点量实时云渲染技术可以通过云端计算来实现实时渲染&#xff0…

​hashlib --- 安全哈希与消息摘要​

源码&#xff1a; Lib/hashlib.py 本模块针对许多不同的安全哈希和消息摘要算法实现了一个通用接口。 包括了 FIPS 安全哈希算法 SHA1, SHA224, SHA256, SHA384, SHA512, (定义见 the FIPS 180-4 standard), SHA-3 系列 (定义见 the FIPS 202 standard) 以及 RSA 的 MD5 算法 (…

http 与 websocket

WebSocket 是 HTML5 规范提出的一种协议&#xff1b;目前除了完犊子的 IE 浏览器&#xff0c;其他浏览器都基本支持。他是一种协议&#xff0c;万变不离其宗&#xff0c;也是基于 TCP 协议的&#xff1b;和 HTTP 协议是并存的两种协议。 WebSocket 连接的过程是&#xff1a; 客…

Lua语言

Lua 是一种轻量级、高效、可嵌入的脚本语言&#xff0c;经常用于嵌入到其他应用程序中作为脚本语言使用。它具有以下特点&#xff1a; 轻量级&#xff1a; Lua 的设计非常精简&#xff0c;只包含必要的功能&#xff0c;因此它的大小和内存占用都很小。 可嵌入性&#xff1a; …