亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue設計一個倒計時秒殺的組件詳解

2019-11-19 11:52:26
字體:
來源:轉載
供稿:網友

簡介:

倒計時秒殺組件在電商網站中層出不窮  不過思路萬變不離其蹤,我自己根據其他資料設計了一個vue版的

核心思路:

  1. 1、時間不能是本地客戶端的時間  必須是服務器的時間這里用一個settimeout代替 以為時間必須統一 
  2. 2、開始時間,結束時間通過父組件傳入,當服務器時間在這個開始時間和結束時間的范圍內  參加活動按鈕可以點擊,并且參加過活動以后不能再參加,
  3. 3、在組件創建的時候 同步得到現在時間服務時間差,并且在這里邊設置定時器,每秒都做判斷看秒殺是否開始和結束,
  4. 4、在更新時間的函數中是否開始和結束,
  5. 5、在computed鉤子中監聽disable 確定按鈕是否可點擊
  6. 6、參加過活動在updated中停止定時器的計時,頁面銷毀的時候也停止計時

下邊是代碼
子組件  

<template>  <div>    <button @click="handleClick" :disabled="disabled">      {{btnText}}    </button>    <span>{{tip}}</span>  </div></template><script>  import moment from 'moment'  export default {    name: "Spike",    props: {      startTime: {        required: true,        validator: (val) => {          return moment.isMoment(val)        }      },      endTime: {        required: true,        validator: (val) => {          return moment.isMoment(val)        }      }    },    data() {      return {        start: false,        end: false,        done: false,        tip: '',        timeGap: 0,        btnText:""      }    },      computed: {      disabled() {        //當三個異號的時候disable返回真,不可點擊,        // 初始化通過this.updateState確定disable的狀態        return !(this.start && !this.end && !this.done);      }    },    async created() {      const serverTime=await this.getServerTime();      this.timeGap=Date.now()-serverTime;//當前時間和服務器時間差      this.updateState();      this.timeInterval=setInterval(()=>{        this.updateState()      },1000)    },    updated(){      if(this.end||this.done){        clearInterval(this.timeInterval)      }    },    methods: {      handleClick() {        alert("提交成功");        this.done=true;        this.btnText="已參加過活動"      },      getServerTime() {        //模擬服務器時間        return new Promise((resolve, reject) => {          setTimeout(() => {            //當前時間慢10秒就是服務器時間            resolve(new Date(Date.now() -10 * 1000).getTime())//跟本地時間差          }, 0)        })      },      updateState() {        const now = moment(new Date(Date.now() - this.timeGap));//當前服務器時間        const diffStart=this.startTime.diff(now);//開始時間和服務器時間之差        const diffEnd=this.endTime.diff(now);//結束時間和服務器時間之差        if(diffStart<0){          this.start=true;          this.tip="秒殺已開始";          this.btnText="參加"        }else{          this.tip=`距離秒殺開始還剩${Math.ceil(diffStart/1000)}秒`;          this.btnText="活動未開始";        }        if(diffEnd<=0){          this.end=true;          if( !this.btnText==="已參加過活動"||this.btnText==="參加"){            this.tip="秒殺已結束";            this.btnText="活動已結束";          }        }      }    },    beforeDestroy() {      clearInterval(this.timeInterval)    }  }</script><style scoped>  button[disabled]{    cursor: not-allowed;  }</style>

父組件

<template>  <div>    <h1 style="color: red">設計一個秒殺倒計時的組件</h1>    <Spike :startTime="startTime" :endTime="endTime"></Spike>  </div></template><script>  import Spike from './Spike'  import moment from 'moment'  export default {    name: "index",    components:{      Spike    },    data(){      return{        endTime:moment(new Date(Date.now()+10*1000)),        startTime:moment(new Date(Date.now()))      }    }  }</script><style scoped></style>

以上所述是小編給大家介紹的vue設計一個倒計時秒殺的組件詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲电影在线观看| 中文日韩在线观看| 日韩美女视频中文字幕| 国产成人福利视频| 欧美丰满少妇xxxx| 欧美黄色三级网站| 亚洲专区中文字幕| 成人亚洲欧美一区二区三区| 成人h视频在线| 日韩美女视频免费在线观看| 这里只有视频精品| 国产成人亚洲综合青青| 日韩成人激情视频| 国产suv精品一区二区| 久久久久久亚洲精品| 热re99久久精品国产66热| 亚洲欧洲一区二区三区在线观看| 欧美性猛交xxxx黑人| 国产区精品在线观看| 亚洲最大av网站| 国产香蕉精品视频一区二区三区| 欧美日韩在线免费| 亚洲va欧美va国产综合久久| 亚洲色在线视频| 欧美日韩国产专区| 91精品国产91久久久久久久久| 不卡av电影在线观看| 久久天天躁狠狠躁夜夜躁| 日韩电影在线观看永久视频免费网站| 一区二区三区亚洲| 国产亚洲精品成人av久久ww| 亚洲欧美日本伦理| 精品激情国产视频| 久久精品亚洲94久久精品| 日韩成人久久久| 亚洲成人精品在线| 日本成人在线视频网址| 亚洲欧美自拍一区| 久久91亚洲精品中文字幕| 欧美黑人xxxx| 亚洲女在线观看| 2019av中文字幕| 欧美成人精品在线观看| 欧美性猛交xxxxx免费看| 久久久国产视频91| 欧美一区在线直播| 久久青草精品视频免费观看| 精品亚洲一区二区三区四区五区| 国产精品一区二区三区毛片淫片| 一个色综合导航| 国产精品吹潮在线观看| 国产视频在线观看一区二区| 欧美一级成年大片在线观看| 欧美久久精品一级黑人c片| 亚洲另类图片色| 亚洲综合成人婷婷小说| 亚洲人成电影网站色…| 欧美激情亚洲一区| 欧美成人一区二区三区电影| 伦伦影院午夜日韩欧美限制| 色噜噜狠狠狠综合曰曰曰88av| 美女撒尿一区二区三区| 亚洲美女www午夜| 国产精品男人爽免费视频1| 亚洲免费高清视频| 欧美日韩美女在线观看| 狠狠躁夜夜躁人人爽超碰91| 色综合天天综合网国产成人网| 国产精品∨欧美精品v日韩精品| 国产精品日韩在线播放| 国产精品亚洲综合天堂夜夜| 国产激情久久久| 欧美日韩激情视频8区| 亚洲人成网7777777国产| 日韩av电影手机在线观看| 91欧美激情另类亚洲| 亚洲精品成人网| 538国产精品一区二区在线| 一区二区三区国产在线观看| 色无极影院亚洲| 精品毛片网大全| 欧美日韩另类视频| 日韩av一区二区在线观看| 亚洲毛茸茸少妇高潮呻吟| 色黄久久久久久| www.99久久热国产日韩欧美.com| 草民午夜欧美限制a级福利片| 国产精品视频久久久| 91久久夜色精品国产网站| 国产亚洲欧洲黄色| 亚洲天堂影视av| 久热在线中文字幕色999舞| 九九精品视频在线| 亚洲成人精品视频| 国产精品av电影| 久久人91精品久久久久久不卡| 日韩中文在线观看| 伊人伊成久久人综合网小说| 国产精品免费小视频| 欧美精品免费播放| 国产精品扒开腿做爽爽爽的视频| 91久久国产综合久久91精品网站| 成人在线国产精品| 日韩亚洲欧美中文在线| 激情av一区二区| 国产91九色视频| 亚洲欧美激情一区| 亚洲电影免费观看高清| 精品亚洲一区二区三区| 国产精品久久久久久久久借妻| 亚洲视频在线观看网站| 68精品国产免费久久久久久婷婷| 992tv成人免费视频| 91国内精品久久| 中国日韩欧美久久久久久久久| 欧美裸体xxxx极品少妇软件| 国外色69视频在线观看| 国产一区二区在线免费| 亚洲无限av看| 欧美性猛交xxxx富婆| 国产aⅴ夜夜欢一区二区三区| 精品网站999www| 隔壁老王国产在线精品| 亚洲国产毛片完整版| 国产精品 欧美在线| 精品久久久精品| 色综合视频一区中文字幕| 欧美与黑人午夜性猛交久久久| 久久久久亚洲精品成人网小说| 欧美激情精品在线| 欧美精品免费看| 欧美日韩在线视频首页| 91免费欧美精品| 日韩在线观看视频免费| 韩曰欧美视频免费观看| 国产精品久久精品| 国产欧美在线播放| 久久久在线免费观看| 日韩欧美中文字幕在线观看| 亚洲精品一区二区久| 久久精品夜夜夜夜夜久久| 久久99视频精品| 国产精品久久网| 热re91久久精品国99热蜜臀| 国产成人精品久久二区二区| 综合国产在线视频| 91精品综合视频| 日韩黄色在线免费观看| 亚洲午夜av电影| 国产成人jvid在线播放| 亚洲国产一区自拍| 4444欧美成人kkkk| 狠狠色噜噜狠狠狠狠97| 国语自产精品视频在免费| 日韩av在线导航| 日韩视频免费在线| 欧美第一页在线| 欧美性生活大片免费观看网址| 欧美国产亚洲视频| 欧洲成人免费aa| 国产91精品视频在线观看| 亚洲视频免费一区| 久久99青青精品免费观看| 日韩中文字幕不卡视频|