首页 > 编程 > JavaScript > 正文

基于vue、react实现倒计时效果

2019-11-19 10:57:54
字体:
来源:转载
供稿:网友

本文实例为大家分享了基于vue、react实现倒计时效果的具体代码,供大家参考,具体内容如下

Vue

方案一:俩个元素

HTML:

<div id="example">  <button @click="send">   <span v-if="sendMsgDisabled">{{time+'秒后获取'}}</span>   <span v-if="!sendMsgDisabled">send</span>  </button></div>

JS:

var vm = new Vue({  el: '#example',  data() {   return {    time: 60, // 发送验证码倒计时    sendMsgDisabled: false   }  },  methods: {   send() {    let me = this;    me.sendMsgDisabled = true;    let interval = window.setInterval(function() {     if ((me.time--) <= 0) {      me.time = 60;      me.sendMsgDisabled = false;      window.clearInterval(interval); //停止     }    }, 1000);   }  } }) 

方案二:一个元素,改变文字

HTML:

<button type="button" @click='delusercache()' :disabled="sendMsgDisabled" v-text="btnText"></button>//倒计时按钮禁用:disabled="sendMsgDisabled

JS:

var vm = new Vue({  el: '#example',  data() {   return {    time: 60, // 发送验证码倒计时    sendMsgDisabled: false //按钮可用   }  },  methods: {   time(){      this.sendMsgDisabled= true; //按钮不可用      let interval = window.setInterval(()=> {        this.btnText = this.time + 's重新发送'        if ((this.time--) <= 0) {          this.time = 120;          this.btnText ='发送验证码'          this.sendMsgDisabled= false; //按钮可用          window.clearInterval(interval);        }      }, 1000);    } }) 

React

引用块内容

time = () => {    this.setState({       times: this.state.times-1,      btnText: '' + this.state.times + 's重新发送)',      // discodeBtn: false,      clearInterval:true    })    var siv = setInterval(() => {      this.setState({         times: this.state.times-1,        btnText: '' + this.state.times + 's重新发送)',        // discodeBtn: false,        clearInterval:true      }, () => {        if (this.state.times === 0) {          clearInterval(siv);          this.setState({             times: 60,            btnText: '发送验证码',             // discodeBtn: true,            clearInterval:false,            phone:false,            isDisabled:false          })        }      });    }, 1000);  };<button className={(this.state.clearInterval ? 'send-btn-disabled-m' : 'send-btn-default')} disabled={this.state.isDisabled} onClick={this.getPhone} >{this.state.btnText}</button>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表