VUE也有自己的日历组件
2016-07-08 16:54
399 查看
Github地址
哈哈, 就在昨天笔者刚刚在Github 上发布了一个基于VUE的日历组件。过去做日历都是需要引用 jquery moment 引用 fullCalendar.js 的。几者加起来体积庞大不说,也并不是很好使用在vue这种数据驱动的项目里。所以笔者经过一周的拍脑袋,做了一个十分简陋的版本。
当然如果对于大陆用户 cnpm 也是十分推崇的,下载速度会快很多,一下 所有使用到npm命令地方 都可以用cnpm代替 笔者不再重复
然后打开浏览器 输入 localhost:8080 你应该就能看到demo啦
props
events 是该组件唯一接受的参数 用来表示该日历上的所有日程事件,他的格式应该如下
title 自然就是事件的标题啦 会直接显示在日历上
start 事件的开始日期 必填哦
end 事件的结束日期 没填就默认是开始日期
YOUR_DATA 你自己定义的一些数据 变量名随意 在后续都会被vue的广播事件传递
events
这里的events 可不是上面说的 props 里的events 哦 而是 你在使用日历 时 一些行为的 反馈。 比如你点击 某一天 某个时间 日历组件都会向外部 dispatch 一个对应的事件和相应的参数
‘changeMonth’ 事件, 当你切换月份时触发
start 是这个月视图(并不是这个月)的第一天 yyyy-MM-dd
end 是这个月视图(并不是这个月)的最后一天 yyyy-MM-dd
‘eventClick’ : 当你点击某个日历事件时触发
event 就是这个日历事件对象啦 参考 上面的props
jsEvent 这次点击的原生 javascript 事件
pos 这个事件的相对于日历的相对坐标 在slot中使用
‘dayClick’ : 当你点击某一天触发
day 你点击的这一天的 Date 对象
jsEvent 这次点击的原生 javascript 事件
slots
为了方便开发者的自由定制我在组件中加了很多slots 来填写大家自己需要的东西 比如 事件卡片 筛选器,下图是一张我自己项目的 事件卡片 和筛选。当然我并没有把他们放进组件里。 I find my roof, you find yours.
再贴一次地址
Github地址
哈哈, 就在昨天笔者刚刚在Github 上发布了一个基于VUE的日历组件。过去做日历都是需要引用 jquery moment 引用 fullCalendar.js 的。几者加起来体积庞大不说,也并不是很好使用在vue这种数据驱动的项目里。所以笔者经过一周的拍脑袋,做了一个十分简陋的版本。
简介
目前只支持月视图,该组件是 .vue 文件的形式。所以,大家在使用的时候 是需要node的咯~~~安装
npm install vue-fullcalendar
当然如果对于大陆用户 cnpm 也是十分推崇的,下载速度会快很多,一下 所有使用到npm命令地方 都可以用cnpm代替 笔者不再重复
DEMO
针对这个组件, 本人做了一个十分简单的 demo。进入到该项目后npm install npm run dev
然后打开浏览器 输入 localhost:8080 你应该就能看到demo啦
使用
大致了解后肯定是使用的问题啦,你只需要把这个组件引入到你自己的vue项目中就可以自由使用啦,因为现在是比较初步的版本。所以笔者十分鼓励大家针对自己的需求做二次开发,import fullcalendar from 'vue-fullcalendar'
API
既然是组件,笔者自然预先定义了一些小属性。不过不用担心,都是基于VUE的props
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.
结尾
因为这个组件还是比较初级的阶段,可能有不少问题,所以十分鼓励大家提issue或是下载后根据自己的需求二次开发。当然如果你心疼笔者的一点点努力的也请给我的项目 一个 Star 哦~~再贴一次地址
Github地址
相关文章推荐
- 查看github pages文档的方式
- 使用BAE的基于Web.py的简单博客程序
- 两分钟学会如何在github托管代码
- Android自定义View实现仿GitHub的提交活跃表格
- github配置使用指南
- github版本库使用详细图文教程(命令行及图形界面版)
- python使用心得之获得github代码库列表
- C语言实现的轻量级brainfuck语言解释器
- My Machine Learning
- 机器学习---学习首页 3ff0
- 利用GitHook构建持续交付和部署
- Android projects on Github
- git 提交步骤记录(oschina&github)
- github第三方 ios客户端比较推荐:iOctocat? CodeHub?NapCat?
- 本人的一些有用的东西的汇总
- GitHub当道,菜鸟也为Git疯狂
- Git LFS(Large File Storage)