0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 小程序

我们的日历组件的时间格式

发表时间:2023-11-17 21:52:19

文章来源:炫佑科技

浏览次数:108

菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技

我们的日历组件的时间格式

地址:

我们继续在这里实现我们的日历组件。 这个日历组件有点特殊,是一个比较复杂的组件。 然后一般的日历组件还有很多变化,所以我们这里可以实现*基本的标签:

让视图 = ('-视图');

= ('../utils/util.js');

// const = util.;

({

:[

看法

],

:{

},

数据: {

: ['日','一','二','三','四','五','六'],

: 1,

//当前显示时间

: 无效的,

//*早可以选择的时间

: 无效的,

//*新时间

: 无效的,

//当前时间,有时从服务器端读取

:()

},

:(){

//.log(这个)

},

:{

})

=(日期){

&& 日期。;

};

=(年份){

//需要处理传入的时间格式

if((年))年=年.()

if((年份 % 4 == 0 && 年份 % 100 != 0) || (年份 % 400 == 0));

;

};

=(日期){

= date.();//注意月份需要加1,所以我们需要减1。

= 日期.();

[31,(年)?29 : 28,31,30,31,30,31,31,30,31,30,31][月];

h =(日期){

= 日期.();

= 日期.();

vard = (年,月,1);

.();

=(日期){

如果(!(日期)){

日期=(日期)

= 日期.();

= 日期.();

vard = (年,月);

//这个月有多少天?

= (d);

//本月从星期几开始?

= (d);

/*

.log('信息',JSON.( {

年: 年,

月: 月,

天: 天,

}));

*/

{

年: 年,

月: 月,

天: 天,

。 = {

{{物品}}

{{索引 + 1 - .().}}

这是一个非常粗糙的日历原型。 编码过程中比较痛苦的有以下几点:

① WXML和js之间只能传递数据,根本不能传递方法。 应该是两人之间的沟通。 这里的日历组件要在WXML层写一些逻辑。

② 用WXML来写逻辑已经不对了,而且我们引入的WXS也和HTML中的js片段有很大不同。

这些问题一度让代码变得复杂,可以看到简单的组件没有复杂的功能,涉及的文件太多。 这是调用层:

其实我们上面的数据根本不应该写入data,而应该作为属性来传递。 我们先简单实现一下功能我们的日历组件的时间格式,然后再继续完善这个组件。 具体代码请查看git:

这个日历组件应该是小程序中写的*复杂的组件了,尤其是很多逻辑判断代码都放在WXML中。 根据之前的理解,小程序在一个中渲染,js逻辑在另一个中。 这样做的目的可能是为了让性能更好,但是这里写代码其实有点蛋疼。 这里我们开始组装组件,将数据配置放到属性上,开始组装页面。 事实上,我认为日历这个非全局组件不应该放在基类中:

① 因为提供的是标签,且涉及文件较多,继承关系难以管理。

② 因为日历组件实际上是一个标签,所以我们将引入一个基本的WXML并使用一个js。 拥有一个完全独立的文件就更复杂了。

③本来小程序或者复杂的页面应该用组件来开发,所以我们创建一个页面级的组件,分散到对应的页面中。

小程序似乎给灵活的HTML&JS戴上了枷锁,只允许在允许的范围内灵活。 这里我们再次尝试拆分页面:

/*

事实上,一个mod只是一个对象,但是为了方便分割,将对象分割成单独的mod。

mod对应于wxml,但共享外部css。 暂时是这样的设计。

所有日历模块要求都在这里实现

*/

。 = {

问:1,

ddd: (){},

数据: {

: '',

数量: 2,

:(),

: 无效的

核心代码仍在-page中:

//是页面级数据,mod是模块数据,要求不能重复

(,mod){

//;

让= {};

让键,值,k,v;

//动态添加操作组件到页面的方法

。(微信小程序开发需要什么语言,这。(),);

//生成真实页面数据

.data = {};

.(.data,this.(),.data || {});

for(键 inmod){

值 = mod[键];

为了(){

v = 值[k];

if(k === '数据'){

.(.数据,v);

}别的{

[k] = v;

。日志();

;

这是另一个修改,我们的基本日历组件已完成 80%:

/*

事实上,一个mod只是一个对象,但是为了方便分割,将对象分割成单独的mod。

mod对应于wxml,但共享外部css。 暂时是这样的设计。

所有日历模块要求都在这里实现

*/

。 = {

问:1,

ddd: (){},

: (e){

让数据= e。;

= (数据.年,数据.月,数据.日);

.log(日期)

这。({

:日期

});

},

数据: {

: '',

数量: 2,

:(),

: 无效的

至此,我们组件相关的话题就基本结束了。 接下来,我们开始我们的业务代码。

【关于投稿】

如果您有原创好文章可以贡献,请直接给公众号留言。

①消息格式:

【提交】+“文章标题”+文章链接

②示例:

【投稿】《别自称程序员,我十几年IT生涯的总结》:

③*后请附上你的个人资料~

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多