VUE實(shí)現(xiàn)日歷組件功能
哈哈, 就在昨天筆者剛剛在Github 上發(fā)布了一個(gè)基于VUE的日歷組件。過去做日歷都是需要引用 jquery moment 引用 fullCalendar.js 的。幾者加起來體積龐大不說,也并不是很好使用在vue這種數(shù)據(jù)驅(qū)動(dòng)的項(xiàng)目里。所以筆者經(jīng)過一周的拍腦袋,做了一個(gè)十分簡(jiǎn)陋的版本。

簡(jiǎn)介
目前只支持月視圖,該組件是 .vue 文件的形式。所以,大家在使用的時(shí)候 是需要node的咯~~~
安裝
npm install vue-fullcalendar
DEMO
針對(duì)這個(gè)組件, 本人做了一個(gè)十分簡(jiǎn)單的 demo。進(jìn)入到該項(xiàng)目后
npm install npm run dev
然后打開瀏覽器 輸入 localhost:8080 你應(yīng)該就能看到demo啦
使用
大致了解后肯定是使用的問題啦,你只需要把這個(gè)組件引入到你自己的vue項(xiàng)目中就可以自由使用啦,因?yàn)楝F(xiàn)在是比較初步的版本。所以筆者十分鼓勵(lì)大家針對(duì)自己的需求做二次開發(fā),
import fullcalendar from 'vue-fullcalendar'
API
既然是組件,筆者自然預(yù)先定義了一些小屬性。不過不用擔(dān)心,都是基于VUE的
props
1、events 是該組件唯一接受的參數(shù) 用來表示該日歷上的所有日程事件,他的格式應(yīng)該如下
events = [
{
title : 'event1',
start: '2016-07-01',
YOUR_DATA : {}
},
{
title : 'event2',
start : '2016-07-02',
end : '2016-07-03',
YOUR_DATA : {}
}
]
title 自然就是事件的標(biāo)題啦 會(huì)直接顯示在日歷上
start 事件的開始日期 必填哦
end 事件的結(jié)束日期 沒填就默認(rèn)是開始日期
YOUR_DATA 你自己定義的一些數(shù)據(jù) 變量名隨意 在后續(xù)都會(huì)被vue的廣播事件傳遞
events
這里的events 可不是上面說的 props 里的events 哦 而是 你在使用日歷 時(shí) 一些行為的 反饋。 比如你點(diǎn)擊 某一天 某個(gè)時(shí)間 日歷組件都會(huì)向外部 dispatch 一個(gè)對(duì)應(yīng)的事件和相應(yīng)的參數(shù)
'changeMonth' 事件, 當(dāng)你切換月份時(shí)觸發(fā)
this.$dispatch('changeMonth', start, end)
start 是這個(gè)月視圖(并不是這個(gè)月)的第一天 yyyy-MM-dd
end 是這個(gè)月視圖(并不是這個(gè)月)的最后一天 yyyy-MM-dd
'eventClick' : 當(dāng)你點(diǎn)擊某個(gè)日歷事件時(shí)觸發(fā)
this.$dispatch('eventClick', event, jsEvent, pos)
event 就是這個(gè)日歷事件對(duì)象啦 參考 上面的props
jsEvent 這次點(diǎn)擊的原生 javascript 事件
pos 這個(gè)事件的相對(duì)于日歷的相對(duì)坐標(biāo) 在slot中使用
'dayClick' : 當(dāng)你點(diǎn)擊某一天觸發(fā)
this.$dispatch('eventClick', day, jsEvent)
day 你點(diǎn)擊的這一天的 Date 對(duì)象
jsEvent 這次點(diǎn)擊的原生 javascript 事件
slots
為了方便開發(fā)者的自由定制我在組件中加了很多slots 來填寫大家自己需要的東西 比如 事件卡片 篩選器,下圖是一張我自己項(xiàng)目的 事件卡片 和篩選。當(dāng)然我并沒有把他們放進(jìn)組件里。 I find my roof, you find yours.

結(jié)尾
因?yàn)檫@個(gè)組件還是比較初級(jí)的階段,可能有不少問題,所以十分鼓勵(lì)大家提issue或是下載后根據(jù)自己的需求二次開發(fā)。
demo下載:vue-fullcalendar_jb51.rar
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中使用Element UI的Table組件實(shí)現(xiàn)嵌套表格功能
這篇文章主要介紹了Vue中使用Element UI的Table組件實(shí)現(xiàn)嵌套表格功能,演示如何在Vue中使用Element UI的Table組件實(shí)現(xiàn)嵌套表格,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
Vue.js+HighCharts實(shí)現(xiàn)動(dòng)態(tài)請(qǐng)求展示時(shí)序數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Vue.js+HighCharts實(shí)現(xiàn)動(dòng)態(tài)請(qǐng)求展示時(shí)序數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
vue-cli中vue本地實(shí)現(xiàn)跨域調(diào)試接口
這篇文章主要介紹了vue-cli中vue本地實(shí)現(xiàn)跨域調(diào)試接口,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
vue結(jié)合Axios+v-for列表循環(huán)實(shí)現(xiàn)網(wǎng)易健康頁面(實(shí)例代碼)
這篇文章主要介紹了vue結(jié)合Axios+v-for列表循環(huán)實(shí)現(xiàn)網(wǎng)易健康頁面,在項(xiàng)目下安裝axios,通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
vue實(shí)現(xiàn)動(dòng)態(tài)監(jiān)測(cè)元素高度
這篇文章主要介紹了vue實(shí)現(xiàn)動(dòng)態(tài)監(jiān)測(cè)元素高度方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vuejs響應(yīng)用戶事件(如點(diǎn)擊事件)
本篇文章主要介紹了vuejs響應(yīng)用戶事件(如點(diǎn)擊),通過vuejs響應(yīng)用戶事件的技巧,具有一定的參考價(jià)值,有興趣的小伙伴們可以參考一下。2017-03-03
vue通信方式EventBus的實(shí)現(xiàn)代碼詳解
這篇文章主要介紹了vue通信方法EventBus的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
Vue項(xiàng)目總結(jié)之webpack常規(guī)打包優(yōu)化方案
這篇文章主要介紹了vue項(xiàng)目總結(jié)之webpack常規(guī)打包優(yōu)化方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
Vue中commit和dispatch區(qū)別及用法辨析(最新)
在Vue中,commit和dispatch是兩個(gè)用于觸發(fā)Vuex store中的mutations和actions的方法,這篇文章主要介紹了Vue中commit和dispatch區(qū)別及其用法辨析,需要的朋友可以參考下2024-06-06

