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学习笔记之总体架构
Jun 03 Javascript
JS操作HTML自定义属性的方法
Feb 10 Javascript
jQuery检测鼠标左键和右键点击的方法
Mar 17 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
Aug 31 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
Sep 14 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
Sep 06 Javascript
vue实现分页加载效果
Dec 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中mt_rand()随机数函数用法
2014/11/24 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
解放web程序员的输入验证
2006/10/06 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
Python的多态性实例分析
2015/07/07 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
2013年学期结束动员演讲稿
2014/01/07 职场文书
成语的广告词
2014/03/19 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
无传销社区工作方案
2014/05/13 职场文书
小学运动会宣传稿
2015/07/23 职场文书
英语教学课后反思
2016/02/15 职场文书
年终工作总结范文
2019/06/20 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python