微信小程序demo提供了一个简单的日历组件,vant也提供了一个日历组件,在github上也有一些日历组件,我试用了一番,都多少存在一些不符合之处。重点说一下vant,它有几个问题:一是加载数据太大,一运行就加载至少一年以上的数据;二是行罩渣样式不好控制,大小相档悄修改一下就会变形;三是在日期上下方加文字不方便。
因为没有找到太好的组件可以引用,就自己想设计一个能方便控制的,遂有下面的设计,
1、采用grid组件显示日期,分三行,中间一行为日期具体天的数字,上面一行显示大小周提示、下面一行显示排班名称
2、采用scroll-view动态包含grid数目
3、一行显示几天,可以动态设置
1、日历头部
2、日历内容
3、日历结构体
4、具体每个月的日历算法
获取某个月的第一天和最后一天,再获取每天的星期数,循环放到grid结构体中
优点:一是加载数据量少,可控制;二是显示内容丰富,可以控制;三是也是显示可以使用slot,更加丰富
缺点:一不是专业日历组件,样式简单了些;二是加载数据量有限,grid自身也是一个组件,加载多了额外的开销肯定大起来。
话不多说,记录一下这个框架的使用~小程序使用轻量、可靠的小程序 UI 组件库 vant-weappGithub源码: https://github.com/youzan/vant-weapp
中文文档: https://youzan.github.io/vant-weapp/#/intro
1:打开微信开发者工具,填写自己的appid和项大敏目名称,选择不使用云服务,新建一个项目。
2:右击在选择在终端打开
进入项目的根伍仿茄目录底下,注意,一定要进入根目录哦,使用cd ../返回上一级目录~
3:小程序已经支持使用 npm 安装第三方包,
这里通过 npm 安装
这里需要注意一下
npm i vant-weapp -S --production或者npm i @vant/weapp -S --production
引入的区别
使用npm i vant-weapp安装的时候,到时候在在app.json或index.json中引入组件,需要使用这样的路径
使用npm i @vant/weapp安装的时候,到时候在在app.json或index.json中引入组件,需要使用这样的路径(推荐,因为这个可以直接抄文档,不需要改变引入路径的~)
4:在微信开发工具执行npm 构建,点击工具里面,构建npm
构建过程需要等待一会儿,不要捉急
构建完会生成一个miniprogram_npm文件夹
如果构建完如果编译报错,再构建一次就好了
日历文档参照一下
5:使用vant-weapp日历组件
我这里对日期的处理,是需要这样的格式YYYY-MM-dd
所以在对选中的日期做了腔察一些处理和判断~
wxml
js
json
微信小程序日历组件calendar详解及实例模版使用:
src="../cal/calendar.wxml"卜和>
is="calendar"
data="{{selected_value,days,month,years,lunar_years,lunar_month,lunar_days,selectDateType,l
unar_selected_value}}">
JS代码使用:
var
Calendar
=
require('../cal/calendar')
Page({
data:
{
selected_value:
[],
days:
[],
month:
[],
years:
[],
lunar_years:
[],
lunar_month:
[],
lunar_days:
[],
selectDateType:
1,
lunar_selected_value:
[]
},
....
//
指定型手盯选择器回调函数
new
Calendar('key',
this,
function(date){
that.setData({
date:
date
})
})
样式
.calendar{
position:
absolute
bottom:
0
width:
100%
z-index:
999
background-color:
#fff
}
.tab{
display:inline-block
width:50%
text-align:center
font-size:16px
color:
#ccc
}
.tab-bar{
background-color:
#eee
height:
40px
line-height:
40px
}
.tab-bar
.active{
color:
#000
}
.selected-item{
font-size:
28px
}
.event-type_parent{
font-size:
14px
}
.event-type_child{
text-align:
center
line-height:
30px
}
.event-type_txt{
display:
inline-block
}
以上用法看不懂的话,具体就参考代码里面index目录下。
感谢阅读,希望能帮助到大家,谢谢大薯纯家对本站的支持!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)