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版(约瑟夫环问题)
Aug 05 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
JS实现获取剪贴板内容的方法
Jun 21 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
Aug 05 Javascript
微信js-sdk地理位置接口用法示例
Oct 12 Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
js实现拖动缓动效果
Jan 13 Javascript
JS轮播图的实现方法
Aug 24 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
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php格式文件打开的四种方法
2018/02/24 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
初步解析Python中的yield函数的用法
2015/04/03 Python
python动态参数用法实例分析
2015/05/25 Python
详解python单例模式与metaclass
2016/01/15 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python上下文管理器全实例详解
2019/11/12 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
开业庆典策划方案
2014/02/18 职场文书
出国英文推荐信
2014/05/10 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
质量整改报告范文
2014/11/08 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
写给医生的感谢信
2015/01/22 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
运动会入场词
2015/07/18 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python