微信小程序日历组件,支持自定义,懒加载且不重复加载,提高性能。
最近在做一个项目用到了日历组件,但是没找到好用的,于是自己造了个轮子,既然都造了,就厚着脸皮分享出来给大家。欢迎交流!
该组件可以在一定范围内自定义,包括当天颜色、选中颜色、时间段颜色、背景颜色等。详细用法见下方。
在 Release 页面下载打包好的 zip 文件,解压后得到 calendar 文件夹,放入项目中。然后在全局配置文件或者要引用本组件的页面配置文件中进行如下配置:
// 页面配置文件
{
"usingComponents": {
"calendar":"项目中组件的路径"
}
}
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
date | String | 否 | 当前选中的日期,不填则默认为今天 | |
topbar-bg-color | String | #1E90FF | 否 | 顶部栏的背景颜色 |
bg-color | String | #F8F8F8 | 否 | 顶部栏以下日期表的背景颜色 |
today-color | String | #1E90FF | 否 | 当“今天”被选中时的背景颜色,以及今天下方的标记点的颜色 |
mark-color | String | #E54D42 | 否 | 日子下方标记点的颜色 |
period-color | String | #F37B1D | 否 | 日期段的背景颜色 |
periods | Array | 否 | 日期段,为数组,数组内的元素为 [‘2020-02-18’, ‘2020-02-20’]格式(即首尾日期)的数组(即外层数组套内层数组,内层数组可以多个,指定多段日期)。 | |
markdays | Array | 否 | 数组,指明哪些日子被打上标记 |
事件 | 功能 | 说明 |
---|---|---|
binddatechange | 当前选中的日期被改变 | 返回当前选中的日期,格式为 ‘2020-02-18’ |
bindrenderfinish | 第一次渲染完成 | 返回当前选中的日期,格式同上 |
bindnewmonthload | 加载了新的月份数据 | 返回所加载的月份数据,为一个数组,包括整个月的数据,数组元素的格式同上 |
-
2020-02-18
A
第一次版本发布
个人自认编程水平不是很高,虽然在过程中有意通过各种方式提高组件的扩展性、不进行不必要的加载和渲染来提高渲染性能,保持了较高的维护性。但难免会存在各种问题,欢迎相互指教交流。
注:组件使用了 Color UI 组件库的样式,但做了一定的抽取,使得引入本组件的项目不依赖于 Color UI 组件库。特此致谢。