如何開發(fā)自定義Vue組件(二):時間組件误堡?

開始

《如何開發(fā)自定義Vue組件(一)古话?》中已經(jīng)說明了如何開發(fā)一個自定義的進度條,自定義vue組件也在該文中有介紹锁施,所以直接進入本文主題陪踩,怎么開發(fā)一個自定義時間組件?
同樣是3方面的內(nèi)容:Template悉抵、Css肩狂、Component。

舉例說明:時間組件

part-time.png

Template

之前開發(fā)自定義進度條是在原生progress基礎(chǔ)上加上自定義樣式達到目的姥饰,這次自定義時間組件沒有原生組件做基礎(chǔ)傻谁,完全用div拼出來的。

<script type="x-template" id="part-datetime">
  <div class="border-box" style="padding:25px;">
    <div class="text-orion">當前時間</div>
  <div>
   <div class="row text-center">
      <div class="col-md-2">
        <div class="text-orion text-center" style="font-size:30px;" v-text="day"></div>
        <div class="text-orion-light text-center">DAY</div>
      </div>
      <div class="col-md-2" >
        <div style="font-size:30px;" class="text-center" v-text="hour"></div>
        <div class="text-orion-light text-center">H</div>
      </div>
      <div class="col-md-1">
        <div class="text-orion" style="font-size:30px;">:</div>
      </div>
      <div class="col-md-2">
        <div style="font-size:30px;" class="text-center" v-text="minute"></div>
        <div class="text-orion-light text-center">MIN</div>
      </div>
      <div class="col-md-1">
        <div class="text-orion" style="font-size:30px;">:</div>
      </div>
      <div class="col-md-2">
        <div style="font-size:30px;" class="text-center" v-text="second"></div>
        <div class="text-orion-light text-center">SEC</div>
      </div>
     </div>
    </div>
  </div>
</script>

Css

基礎(chǔ)樣式是bootstrap.css列粪,再加上自定義樣式审磁。

.border-box {
  height: 130px;
  padding: 20px;
  border: 1px solid rgb(45, 44, 60);
}
.text-orion {
  color:#56BBCA;
}
.text-orion-light {
  color:#5D858D;
}

Component

為了讓新組件成為vue的一員谈飒,所以需要注冊。
先注冊一個簡單的不會自動更新的時間組件态蒂。

Vue.component('part-datetime', {
  data: function () {
    return {}
  },
  props: {
    day: {
    type: Number,
    default: 10
  },
  hour: {
    type: Number,
    default: 12,
  },
  minute: {
    type: Number,
    default: 15,
  },
  second: {
    type: Number,
    default: 30,
  },
},
template: 'part-datetime'
})

然后再此基礎(chǔ)上在注冊一個會自動更新時間的組件杭措。
這次使用data來更新數(shù)據(jù)。

Vue.component('p-datetime', {
  data: function () {
  return {
    dayValue:6,
    hourValue:17,
    minuteValue:31,
    secondValue:50,
  }
},
created() {
  var self = this
  function repeated() {
    self.setTime()
    setTimeout(repeated, 1000);
  }
  repeated()
},
methods: {
  setTime: function() {
    var self = this
    var now = new Date()//獲取系統(tǒng)當前時間
    self.dayValue = now.getDate() //獲取當前日(1-31)
    self.hourValue = now.getHours() //獲取當前小時數(shù)(0-23)
    self.minuteValue = now.getMinutes() //獲取當前分鐘數(shù)(0-59)
    self.secondValue = now.getSeconds() //獲取當前秒數(shù)(0-59)
  }
},
template: `
  <part-datetime
  :day="dayValue"
  :hour="hourValue"
  :minute="minuteValue"
  :second="secondValue">
  </part-datetime>
`
})

到此钾恢,新的時間組件就開發(fā)完成了手素,怎么應(yīng)用呢?

如何應(yīng)用自定義組件瘩蚪?

Html

像html普通組件一樣使用泉懦,因為已經(jīng)注冊了一個會自動更新的時間組件p-datetime,所以很簡單的使用即可募舟,無需賦值祠斧。

<div class="col-md-3 first">
    <p-datetime></p-datetime>
</div>

這樣顯示的時間就會和當前電腦時間一樣,并自動更新時分秒的數(shù)值拱礁。
這和之前的自定義進度條有區(qū)別琢锋,傳值的方式不同:自定義進度條需要在當前頁面中傳相應(yīng)的值;自定義時間組件在構(gòu)建組件時已經(jīng)把傳值方法寫好呢灶,查看setTime方法吴超。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鸯乃,隨后出現(xiàn)的幾起案子鲸阻,更是在濱河造成了極大的恐慌,老刑警劉巖缨睡,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸟悴,死亡現(xiàn)場離奇詭異,居然都是意外死亡奖年,警方通過查閱死者的電腦和手機细诸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陋守,“玉大人震贵,你說我怎么就攤上這事∷溃” “怎么了猩系?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長中燥。 經(jīng)常有香客問我寇甸,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任幽纷,我火速辦了婚禮式塌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘友浸。我一直安慰自己,他們只是感情好偏窝,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布收恢。 她就那樣靜靜地躺著,像睡著了一般祭往。 火紅的嫁衣襯著肌膚如雪伦意。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天硼补,我揣著相機與錄音驮肉,去河邊找鬼。 笑死已骇,一個胖子當著我的面吹牛离钝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褪储,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卵渴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲤竹?” 一聲冷哼從身側(cè)響起浪读,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辛藻,沒想到半個月后碘橘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡吱肌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年痘拆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岩榆。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡错负,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勇边,到底是詐尸還是另有隱情犹撒,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布粒褒,位于F島的核電站识颊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜祥款,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一清笨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刃跛,春花似錦抠艾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛙酪,卻和暖如春齐苛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桂塞。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工凹蜂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阁危。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓玛痊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親欲芹。 傳聞我的和親對象是個殘疾皇子卿啡,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容