小編給大家分享一下vue怎么實(shí)現(xiàn)簡(jiǎn)單的日歷效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有文山州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。最近在項(xiàng)目中遇到了一個(gè)需求,在vue中創(chuàng)建一個(gè)組件,這個(gè)組件顯示的是當(dāng)前的日期,以及在當(dāng)前的日需要處理的事項(xiàng),處理的事項(xiàng)的信息會(huì)以后端的接口的形式返回。
需求確認(rèn)后,搭建了一下,在這里記錄了一下,現(xiàn)在是簡(jiǎn)單的實(shí)現(xiàn)了這個(gè)需求,但是肯定的是后期需要進(jìn)行修改。
vue就不多說(shuō)了,在vue中使用的是原生JS
效果圖
現(xiàn)在實(shí)現(xiàn)的都是最初級(jí)的版本,代碼里面的容錯(cuò),還有一些性能上的處理,并沒(méi)有書(shū)寫(xiě)。
不多說(shuō),上代碼:
首先是vue的html結(jié)構(gòu),很簡(jiǎn)單,里面添加了一些其他時(shí)間形式的顯示,可根據(jù)具體使用場(chǎng)景增刪
<div id="dateContainer"> <div class="date__showNowTime"> 今天是 <span v-text="ynow"></span>年<span v-text="mnow+1"></span>月<span v-text="dnow"></span>日 </div> <div class="nowTime"> <button class="preMon" @click="preMon">上個(gè)月</button> <div class="thisMon"> <span v-text="ynow"></span>/ <span v-text="mnow+1"></span> </div> <button class="nextMon" @click="nextMon">下個(gè)月</button> </div> <table border="1" id="table"> </table> </div>
接下來(lái)是實(shí)現(xiàn)我們的這個(gè)需求的JS代碼的位置了,關(guān)于js的代碼,在代碼里面存在一些注釋?zhuān)唧w可以根據(jù),代碼的注釋進(jìn)行解讀
export default { data() { return { newDate: '',//當(dāng)前的日期的信息 ynow: '',//當(dāng)前的年數(shù) mnow: '',//當(dāng)前的月份 dnow: '',//當(dāng)前的天數(shù) firstDay: '',//第一天 firstnow: '',//當(dāng)前的星期 m_days: [],//每個(gè)月的天數(shù) tr_str: '',//行數(shù) } }, methods: { getDaysInfo() { var _this = this; this.sureDate(_this); }, is_leap(year) {//判斷是不是閏年 return (year%100==0?(year%400==0?1:0):(year%4==0?1:0)); }, //下面的是畫(huà)表格的方法,這個(gè)方法會(huì)根據(jù)數(shù)據(jù)畫(huà)出我們需要的表格 drawTable(jsonHtml) { var _this = this; var str = ` <tr class="xiqi"> <td class="isRed">星期日</td> <td>星期一</td> <td>星期二</td> <td>星期三</td> <td>星期四</td> <td>星期五</td> <td class="isRed">星期六</td> </tr>`; var idx = '',date_str = '',isRed = '',hasMsg=''; for(var i = 0; i< _this.tr_str; i++) { str+='<tr>'; for(var k = 0; k < 7; k++) { idx = i*7+k; isRed = (k===0||k===6)?"isRed":""; date_str=idx-_this.firstnow+1; (date_str<=0 || date_str>this.m_days[this.mnow]) ? date_str=" " : date_str=idx-_this.firstnow+1; date_str==_this.dnow?hasMsg='<td class="thisDay" date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span></td>':hasMsg='<td date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span></td>'; for(var l = 0, len = jsonHtml.length; l < len; l++) { if(date_str== jsonHtml[l].date) { var newStr = '<p>'+jsonHtml[l].msg +'</p>'; date_str==_this.dnow?hasMsg='<td class="thisDay" date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span>'+ newStr+'</td>':hasMsg='<td date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span>'+ newStr+'</td>'; } } str+=hasMsg; } str+='</tr>'; } var table = document.getElementById('table'); table.innerHTML = str; }, //兩個(gè)參數(shù)代表的含義分別是this對(duì)象以及判斷當(dāng)前的操作是不是在進(jìn)行月份的修改 sureDate(_this,other) { this.newDate = new Date(); this.ynow = this.newDate.getFullYear(); if(!other) { this.mnow=this.newDate.getMonth(); //月份 } this.dnow=this.newDate.getDate(); //今日日期 this.firstDay = new Date(this.ynow,this.mnow,1); this.firstnow=this.firstDay.getDay(); this.m_days = [31,28+this.is_leap(this.ynow),31,30,31,30,31,31,30,31,30,31]; this.tr_str = Math.ceil((_this.m_days[this.mnow] + this.firstnow)/7); this.showMsg(); }, preMon() { var _this = this; this.mnow--; this.sureDate(_this,"up"); }, nextMon() { var _this = this; this.mnow++; this.sureDate(_this,"next"); }, //通過(guò)接口返回的是我們當(dāng)前的月份對(duì)應(yīng)在日歷中需要處理的事項(xiàng) showMsg() { var jsonHtml = [{ date: 2, msg: '吃飯' }, { date: 3, msg: '睡覺(jué)' }, { date: 4, msg: '打豆豆' }, { date: 6, msg: '豆豆不在家' }, { date: 12, msg: '~~~~~' }, { date: 15, msg: '怎么辦~~~~' }, { date: 20, msg: '找豆豆' }]; this.drawTable(jsonHtml) } }, mounted() { //畫(huà)出當(dāng)前的月份的天數(shù)對(duì)應(yīng)的表格 this.getDaysInfo(); //進(jìn)行數(shù)據(jù)的獲取,顯示到對(duì)應(yīng)的位置 }
js的代碼目前的來(lái)說(shuō)也就是這么多,里面只是初步實(shí)現(xiàn)了功能,其他什么都沒(méi)進(jìn)行處理~~~~
以上是“vue怎么實(shí)現(xiàn)簡(jiǎn)單的日歷效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前標(biāo)題:vue怎么實(shí)現(xiàn)簡(jiǎn)單的日歷效果-創(chuàng)新互聯(lián)
文章位置:http://www.rwnh.cn/article46/dgsshg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)頁(yè)設(shè)計(jì)公司、App開(kāi)發(fā)、響應(yīng)式網(wǎng)站、用戶(hù)體驗(yàn)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容