VUE实现日历组件功能


Posted in Javascript onMarch 13, 2017

哈哈, 就在昨天笔者刚刚在Github 上发布了一个基于VUE的日历组件。过去做日历都是需要引用 jquery moment 引用 fullCalendar.js 的。几者加起来体积庞大不说,也并不是很好使用在vue这种数据驱动的项目里。所以笔者经过一周的拍脑袋,做了一个十分简陋的版本。

VUE实现日历组件功能

简介

目前只支持月视图,该组件是 .vue 文件的形式。所以,大家在使用的时候 是需要node的咯~~~

安装

npm install vue-fullcalendar

DEMO

针对这个组件, 本人做了一个十分简单的 demo。进入到该项目后

npm install
npm run dev

然后打开浏览器 输入 localhost:8080 你应该就能看到demo啦

使用

大致了解后肯定是使用的问题啦,你只需要把这个组件引入到你自己的vue项目中就可以自由使用啦,因为现在是比较初步的版本。所以笔者十分鼓励大家针对自己的需求做二次开发,

import fullcalendar from 'vue-fullcalendar'

API

既然是组件,笔者自然预先定义了一些小属性。不过不用担心,都是基于VUE的

props

1、events 是该组件唯一接受的参数 用来表示该日历上的所有日程事件,他的格式应该如下

events = [
     {
      title : 'event1',
      start: '2016-07-01',
      YOUR_DATA : {}
     },
     {
      title : 'event2',
      start : '2016-07-02',
      end : '2016-07-03',
      YOUR_DATA : {}
     }
   ]

title 自然就是事件的标题啦 会直接显示在日历上

start 事件的开始日期 必填哦

end 事件的结束日期 没填就默认是开始日期

YOUR_DATA 你自己定义的一些数据 变量名随意 在后续都会被vue的广播事件传递

events

这里的events 可不是上面说的 props 里的events 哦 而是 你在使用日历 时 一些行为的 反馈。 比如你点击 某一天 某个时间 日历组件都会向外部 dispatch 一个对应的事件和相应的参数

'changeMonth' 事件, 当你切换月份时触发

this.$dispatch('changeMonth', start, end)

start 是这个月视图(并不是这个月)的第一天 yyyy-MM-dd

end 是这个月视图(并不是这个月)的最后一天 yyyy-MM-dd

'eventClick' : 当你点击某个日历事件时触发

this.$dispatch('eventClick', event, jsEvent, pos)

event 就是这个日历事件对象啦 参考 上面的props

jsEvent 这次点击的原生 javascript 事件

pos 这个事件的相对于日历的相对坐标 在slot中使用

'dayClick' : 当你点击某一天触发

this.$dispatch('eventClick', day, jsEvent)

day 你点击的这一天的 Date 对象

jsEvent 这次点击的原生 javascript 事件

slots

为了方便开发者的自由定制我在组件中加了很多slots 来填写大家自己需要的东西 比如 事件卡片 筛选器,下图是一张我自己项目的 事件卡片 和筛选。当然我并没有把他们放进组件里。 I find my roof, you find yours.

VUE实现日历组件功能

结尾

因为这个组件还是比较初级的阶段,可能有不少问题,所以十分鼓励大家提issue或是下载后根据自己的需求二次开发。

demo下载:vue-fullcalendar_3water.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery与JS里submit()的区别示例介绍
Feb 17 Javascript
基于socket.io和node.js搭建即时通信系统
Jul 30 Javascript
JavaScript DOM基础
Apr 13 Javascript
js实现String.Fomat的实例代码
Sep 02 Javascript
js实现文字列表无缝滚动效果
Jun 23 Javascript
Vue写一个简单的倒计时按钮功能
Apr 20 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
微信小程序公用参数与公用方法用法示例
Jan 09 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
巧妙运用v-model实现父子组件传值的方法示例
Apr 07 Javascript
javascript实现遮罩层动态效果实例
May 14 Javascript
extjs图形绘制之饼图实现方法分析
Mar 06 Javascript
JS正则表达式判断有效数实例代码
Mar 13 #Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 #Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
Mar 13 #Javascript
干货!教大家如何选择Vue和React
Mar 13 #Javascript
JavaScript 数据类型详解
Mar 13 #Javascript
Java与JavaScript中判断两字符串是否相等的区别
Mar 13 #Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 #Javascript
You might like
10条PHP编程习惯助你找工作
2008/09/29 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
使用URL传输SESSION信息
2015/07/14 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
JScript的条件编译
2007/05/29 Javascript
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
ExpressJS入门实例
2015/01/14 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
python基于property()函数定义属性
2020/01/22 Python
Python如何给你的程序做性能测试
2020/07/29 Python
序列化Python对象的方法
2020/08/01 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
加强作风建设演讲稿
2014/10/24 职场文书
清洁工工作总结
2015/08/11 职场文书
初中英语教学反思范文
2016/02/15 职场文书
《童年的发现》教学反思
2016/02/18 职场文书