vue實(shí)現(xiàn)簡(jiǎn)易計(jì)時(shí)器組件
在做項(xiàng)目中難免會(huì)碰到需要實(shí)時(shí)刷新,廣告動(dòng)畫依次出現(xiàn)等等需求,剛最近基于業(yè)務(wù)需求,需要實(shí)現(xiàn)一個(gè)累加通話時(shí)長(zhǎng)的計(jì)時(shí)器,這時(shí)候就需要定時(shí)器登上我們的代碼舞臺(tái)了,其實(shí)對(duì)于計(jì)時(shí)器,它的原理就是通過定時(shí)器來實(shí)現(xiàn)的,那么在寫業(yè)務(wù)需求之前,我先說說關(guān)于定時(shí)器的一些知識(shí)。
window對(duì)象提供了兩個(gè)方法來實(shí)現(xiàn)定時(shí)器的效果,分別是window.setTimeout()和window.setInterval。
在Javascript中,代碼一般都是同步執(zhí)行的,但定時(shí)器卻是異步執(zhí)行的。
window.setTimeout(callback,delay); //callback:回調(diào)函數(shù) delay:時(shí)間間隔時(shí)長(zhǎng) window.setInterval(callback,delay);
定時(shí)器分為隔時(shí)定時(shí)器setInterval和延時(shí)定時(shí)器setTimeout
那么它們兩到底有什么區(qū)別呢?
- setInterval以指定時(shí)間為周期循環(huán)執(zhí)行,一般用于刷新表單、復(fù)雜動(dòng)畫的循環(huán)執(zhí)行,對(duì)于一些表單的實(shí)時(shí)指定時(shí)間刷新同步
- setTimeout只在指定時(shí)間后執(zhí)行一次,像有些網(wǎng)站剛進(jìn)去會(huì)出現(xiàn)一個(gè)彈窗廣告,一般都是用的setTimeout
了解了定時(shí)器的基本知識(shí)之后,那么接下來就可以進(jìn)行功能的實(shí)現(xiàn)了。
HTML
<template>
<div class="timer">
<div>{{nowTime}}</div>
</div>
</template>
Javascript
<script>
export default {
name: 'Timer',
data () {
return {
timer: null,
nowTime:"",
hour: 0,
minutes: 0,
seconds: 0
}
},
created () {
this.timer = setInterval(this.startTimer, 1000);
},
destroyed () {
clearInterval(this.timer);
},
methods: {
startTimer () {
//建議開啟定時(shí)器前,先清除定時(shí)器,避免定時(shí)器累加,出現(xiàn)不可預(yù)期的bug
if(this.timer) {
clearInterval(this.timer);
}
this.seconds += 1;
if (this.seconds >= 60) {
this.seconds = 0;
this.minutes= this.minutes+ 1;
}
if (this.minutes>= 60) {
this.minutes= 0;
this.hour = this.hour + 1;
}
this.nowTime = this.toZero(this.hour): this.toZero(this.minutes):this.toZero(this.seconds)
},
toZero(timeNumber) {
return timeNumber<10?"0"+timeNumber:timeNumber
},
}
}
</script>
這樣,一個(gè)簡(jiǎn)單的計(jì)時(shí)器組件就實(shí)現(xiàn)好了,其實(shí)還有其他的實(shí)現(xiàn)思路,如果以后開發(fā)碰到了類似的需求,可以借鑒,希望對(duì)你們有所幫助。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于Vue方法實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器
- 使用vue實(shí)現(xiàn)計(jì)時(shí)器功能
- vue.js實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器功能
- vue計(jì)時(shí)器的實(shí)現(xiàn)方法
- Vue計(jì)時(shí)器的用法詳解
- 解決vue組件銷毀之后計(jì)時(shí)器繼續(xù)執(zhí)行的問題
- 在Vue環(huán)境下利用worker運(yùn)行interval計(jì)時(shí)器的步驟
- Vue 使用計(jì)時(shí)器實(shí)現(xiàn)跑馬燈效果的實(shí)例代碼
- vue 計(jì)時(shí)器組件的實(shí)現(xiàn)代碼
- Vue.js實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器應(yīng)用
相關(guān)文章
Vue?Router?返回后記住滾動(dòng)條位置的實(shí)現(xiàn)方法
使用?Vue?router?創(chuàng)建?SPA(Single?Page?App),往往有這種需求:首頁(yè)是列表頁(yè),點(diǎn)擊列表項(xiàng)進(jìn)入詳情頁(yè),在詳情頁(yè)點(diǎn)擊返回首頁(yè)后,希望看到的是,首頁(yè)不刷新,并且滾動(dòng)條停留在之前的位置,這篇文章主要介紹了Vue?Router?返回后記住滾動(dòng)條位置的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-09-09
vue項(xiàng)目中向數(shù)組添加元素的3種方式
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中向數(shù)組添加元素的3種方式,在Vue中添加元素到數(shù)組非常簡(jiǎn)單,文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10
vue實(shí)現(xiàn)循環(huán)滾動(dòng)列表
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)循環(huán)滾動(dòng)列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
vue實(shí)現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計(jì)
這篇文章主要為大家介紹了vue實(shí)現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計(jì)思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Vue3?計(jì)算屬性computed的實(shí)現(xiàn)原理
這篇文章主要介紹了Vue3?計(jì)算屬性computed的實(shí)現(xiàn)原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08
vue-preview動(dòng)態(tài)獲取圖片寬高并增加旋轉(zhuǎn)功能的實(shí)現(xiàn)
這篇文章主要介紹了vue-preview動(dòng)態(tài)獲取圖片寬高并增加旋轉(zhuǎn)功能的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue3項(xiàng)目導(dǎo)入異常Error:@vitejs/PLUGIN-vue?requires?vue?(>=3.2.13
這篇文章主要給大家介紹了關(guān)于vue3項(xiàng)目導(dǎo)入異常Error:@vitejs/PLUGIN-vue?requires?vue?(>=3.2.13)的解決辦法,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

