最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue 計(jì)時(shí)器組件的實(shí)現(xiàn)代碼

 更新時(shí)間:2017年09月14日 16:50:35   作者:小羅程序員  
本篇文章主要介紹了vue 計(jì)時(shí)器組件的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

整理文檔,搜刮出一個(gè)vue 計(jì)時(shí)器組件的代碼,稍微整理精簡(jiǎn)一下做下分享。

<template>
 <div>
  <span 
    :sendSync="sendSync" 
    :autoStart="autoStart" 
    :defaultVal="defaultVal"
  >{{countString}}</span>
 </div>
</template>
<script>
export default {
 data() {
  return {
   isStart: false,
   globalTimer: null,//獲取setInterval對(duì)象值
   countString: '0秒', //用來顯示時(shí)間
   day: 0,
   hour: 0,
   minute: 0,
   second: 0,
   millisecond: 0,
   countVal: this.defaultVal, //獲取初始值
   pauseTime: 0,
  }
 },
 watch: {
  'countString': {
   deep: true,
   handler: function(val, oldVal) {
    var vm = this
    if (vm.needSendSunc) {
     vm.passToParent(val)
    }
   }
  },
  'needSendSunc': {
   deep: true,
   handler: function(val) {
    var vm = this
    if (val) {
     vm.passToParent(vm.countString)
    }
   }
  }
 },
 props: {
  sendSync: {
   type: Boolean,
   default: false,
  },
  autoStart: {
   type: Boolean,
   default: false,
  },
  defaultVal: {
   type: Number,
   default: 0,
  }
 },
 mounted() {
  var vm = this
  if (vm.autoStart) {
   vm.startCountFn()
  }
 },
 computed: {
  needSendSunc: function() {
   return this.sendSync
  }
 },
 created: function() {
  this.$on('startCount', function() {
   this.startCountFn()
  });
  this.$on('stopCount', function() {
   this.stopCountFn()
  });
 },
 components: {},
 methods: {
  counterFn: function(counterTime) {
   var vm = this
   var nowDate = new Date().getTime()
   if(vm.pauseTime == 0){
    var num = nowDate - counterTime //計(jì)算時(shí)間毫秒差
   }else{
    vm.pauseTime = vm.pauseTime +10
    var num = vm.pauseTime - counterTime //計(jì)算時(shí)間毫秒差
   }
   var leave1 = num % (24 * 3600 * 1000)  //計(jì)算天數(shù)后剩余的毫秒數(shù)
   var leave2 = leave1 % (3600 * 1000)    //計(jì)算小時(shí)數(shù)后剩余的毫秒數(shù)
   var leave3 = leave2 % (60 * 1000)   //計(jì)算分鐘數(shù)后剩余的毫秒數(shù)
   vm.day = Math.floor(num / (24 * 3600 * 1000)) //計(jì)算相差天數(shù)
   vm.hour = Math.floor(leave1 / (3600 * 1000))//計(jì)算相差小時(shí)
   vm.minute = Math.floor(leave2 / (60 * 1000))//計(jì)算相差分鐘
   vm.second = Math.round(leave3 / 1000) //計(jì)算相差秒
   if (vm.day > 0) {
    vm.countString = `${vm.day}天 ${vm.hour}小時(shí) ${vm.minute}分 ${vm.second}秒`;
   } else if (vm.hour > 0) {
    vm.countString = `${vm.hour}小時(shí) ${vm.minute}分 ${vm.second}秒`;
   } else if (vm.minute > 0) {
    vm.countString = `${vm.minute}分 ${vm.second}秒`;
   } else {
    vm.countString = `${vm.second}秒`;
   }
  },
  startCountFn: function() {
   var vm = this
   if (!vm.isStart) {
    vm.countVal = vm.countVal ? vm.countVal : new Date().getTime()
    var timer = setInterval(function() {
     vm.counterFn(vm.countVal)
    }, 10)
    vm.globalTimer = timer
    vm.isStart = true
   }
  },
  stopCountFn: function() {
   var vm = this
   if (vm.isStart) {
    window.clearInterval(vm.globalTimer)
    vm.globalTimer = null;
    vm.isStart = false
    vm.pauseTime = new Date().getTime()
   }
  },
  passToParent: function(data) {
   var vm = this
   this.$emit("getDataFromChild", data)
  },
 }
}
</script>
<style>

</style>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中的自定義分頁(yè)插件組件的示例

    vue中的自定義分頁(yè)插件組件的示例

    這篇文章主要介紹了vue中的自定義分頁(yè)插件組件的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue 實(shí)現(xiàn)element-ui中的加載中狀態(tài)

    vue 實(shí)現(xiàn)element-ui中的加載中狀態(tài)

    這篇文章主要介紹了vue 實(shí)現(xiàn)element-ui中的加載中狀態(tài),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue監(jiān)聽dom大小改變案例

    vue監(jiān)聽dom大小改變案例

    這篇文章主要介紹了vue監(jiān)聽dom大小改變案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue3中storeToRefs讓store中的結(jié)構(gòu)出來的數(shù)據(jù)也能變成響應(yīng)式(推薦)

    vue3中storeToRefs讓store中的結(jié)構(gòu)出來的數(shù)據(jù)也能變成響應(yīng)式(推薦)

    這篇文章主要介紹了vue3中storeToRefs讓store中的結(jié)構(gòu)出來的數(shù)據(jù)也能變成響應(yīng)式,本文通過實(shí)例代碼給大家介紹的分需要的朋友可以參考下
    2024-09-09
  • 詳解vue之頁(yè)面緩存問題(基于2.0)

    詳解vue之頁(yè)面緩存問題(基于2.0)

    本篇文章主要介紹了vue之頁(yè)面緩存問題(基于2.0),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • vue中v-model失效原因以及解決方案

    vue中v-model失效原因以及解決方案

    這篇文章主要給大家介紹了關(guān)于vue中v-model失效原因以及解決方案的相關(guān)資料,vue的v-model是一個(gè)雙向綁定的數(shù)據(jù)流,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Vue2如何支持composition API示例詳解

    Vue2如何支持composition API示例詳解

    這篇文章主要為大家介紹了Vue2如何支持composition API示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • vue實(shí)現(xiàn)面包屑的方法

    vue實(shí)現(xiàn)面包屑的方法

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)面包屑的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用json-editor-vue3(Json字段編輯器)

    使用json-editor-vue3(Json字段編輯器)

    文章介紹了如何在Vue3+Ts項(xiàng)目中使用json-editor-vue3插件,并解決了導(dǎo)入過程中遇到的模塊識(shí)別問題,通過步驟說明和代碼示例,展示了如何在項(xiàng)目中成功引入和使用該插件,并提供了一些常見參數(shù)和事件說明
    2025-01-01
  • vue.js打包項(xiàng)目后頁(yè)面出現(xiàn)空白的解決辦法

    vue.js打包項(xiàng)目后頁(yè)面出現(xiàn)空白的解決辦法

    這篇文章主要介紹了vue.js打包項(xiàng)目后頁(yè)面出現(xiàn)空白的解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11

最新評(píng)論

务川| 河津市| 泸水县| 高雄市| 固原市| 玉龙| 略阳县| 天水市| 顺平县| 阿合奇县| 商水县| 临夏市| 红原县| 遂川县| 江源县| 靖安县| 茶陵县| 莫力| 松溪县| 和田县| 清水县| 奎屯市| 保德县| 二连浩特市| 晋城| 三门县| 南溪县| 娄烦县| 克东县| 惠安县| 昌乐县| 青田县| 轮台县| 炉霍县| 郴州市| 丰原市| 滨州市| 泽州县| 江油市| 江源县| 夏津县|