基于vue、react实现倒计时效果
本文实例为大家分享了基于vue、react实现倒计时效果的具体代码,供大家参考,具体内容如下
Vue
方案一:俩个元素
HTML:
JS:
varvm=newVue({ el:'#example', data(){ return{ time:60,//发送验证码倒计时 sendMsgDisabled:false } }, methods:{ send(){ letme=this; me.sendMsgDisabled=true; letinterval=window.setInterval(function(){ if((me.time--)<=0){ me.time=60; me.sendMsgDisabled=false; window.clearInterval(interval);//停止 } },1000); } } })
方案二:一个元素,改变文字
HTML:
//倒计时按钮禁用:disabled="sendMsgDisabled
JS:
varvm=newVue({ el:'#example', data(){ return{ time:60,//发送验证码倒计时 sendMsgDisabled:false//按钮可用 } }, methods:{ time(){ this.sendMsgDisabled=true;//按钮不可用 letinterval=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 }) varsiv=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); };
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。