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 相关文章推荐
JS target与currentTarget区别说明
Aug 28 Javascript
brook javascript框架介绍
Oct 10 Javascript
多种方法实现JS动态添加事件
Nov 01 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
Nov 08 Javascript
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
angularJS 中$scope方法使用指南
Feb 09 Javascript
浅谈javascript中return语句
Jul 15 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
React-router 4 按需加载的实现方式及原理详解
May 25 Javascript
浅谈Node.js 沙箱环境
May 15 Javascript
在微信小程序中使用图表的方法示例
Apr 25 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 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
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现目录树生成示例
2014/03/28 Python
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python将字符串转换成数组的方法
2015/04/29 Python
python图片验证码生成代码
2016/07/02 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
详解Python中的分支和循环结构
2020/02/11 Python
Python接收手机短信的代码整理
2020/08/02 Python
护理自荐信范文
2013/10/05 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
买房协议书
2014/04/11 职场文书
驾驶员培训方案
2014/05/01 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
英语辞职信范文
2015/02/28 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
Spring实现内置监听器
2021/07/09 Java/Android