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 子窗口操作父窗口的代码
Sep 21 Javascript
jQuery实现的支持IE的html滑动条
Mar 16 Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
javascript实现checkbox复选框实例代码
Jan 10 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
Oct 22 Javascript
优雅的在React项目中使用Redux的方法
Nov 10 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
layui自定义插件citySelect实现省市区三级联动选择
Jul 26 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
vue中的循环对象属性和属性值用法
Sep 04 Javascript
如何在vue 中引入使用jquery
Nov 10 jQuery
ES2020让代码更优美的运算符 (?.) (??)
Jan 04 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP 开发工具
2006/12/06 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
django解决跨域请求的问题详解
2019/01/20 Python
python变量命名的7条建议
2019/07/04 Python
Django CBV类的用法详解
2019/07/26 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
英语专业应届生求职信范文
2013/11/15 职场文书
社区包粽子活动方案
2014/01/21 职场文书
小学生常见病防治方案
2014/06/06 职场文书
反对四风自我剖析材料
2014/10/07 职场文书