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


Posted in Javascript onAugust 26, 2019

本文实例为大家分享了基于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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript深入理解js闭包
Jul 03 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
node.js中的fs.openSync方法使用说明
Dec 17 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
vue实现ToDoList简单实例
Feb 07 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
Jan 18 Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
tweenjs缓动算法的使用实例分析
Aug 26 #Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
Aug 26 #Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 #Javascript
小程序实现层叠卡片滑动效果
Aug 26 #Javascript
微信小程序 数据缓存实现方法详解
Aug 26 #Javascript
使用typescript构建Vue应用的实现
Aug 26 #Javascript
微信小程序实现手势滑动卡片效果
Aug 26 #Javascript
You might like
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
php构造函数与析构函数
2016/04/23 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
jquery动态加载图片数据练习代码
2011/08/04 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
金讯Java笔试题目
2013/06/18 面试题
给领导的致歉信范文
2014/01/13 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
总经理助理岗位职责
2015/01/31 职场文书
作息时间调整通知
2015/04/22 职场文书
邹越演讲观后感
2015/06/15 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
DE1103使用报告
2022/04/05 无线电
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle